正则表达式匹配

时间:2017-05-26 17:58:38

标签: java regex

我刚接触Java编码,目前正在尝试使用正则表达式模式匹配。但出于某种原因,正则表达式根本不匹配任何东西。 我的代码如下:

if(scan.hasNext("append\\s[a-zA-Z0-9]*")){
    //do stuff
}

但是如果我输入“append hello”,它就不会匹配。

有人可以告诉我原因吗?

2 个答案:

答案 0 :(得分:3)

您必须使用matches例如:

"append hello".matches("append\\s[a-zA-Z0-9]*")

您可以使用:

if (scan.nextLine().matches("append\\s[a-zA-Z0-9]*")) {
    System.out.println("Match");
}

答案 1 :(得分:0)

问题是Scanner(我假设为scan)的默认分隔符是一个空格,因此令牌变为:appendhello,以及既不匹配模式。

您可以将分隔符设置为其他内容,例如行分隔符:

Scanner scan = new Scanner(System.in);
scan.useDelimiter(System.lineSeparator());

if (scan.hasNext("append\\s[a-zA-Z0-9]*")) {
    // ...
}

现在当我输入append hello时,我确实得到了匹配。