Java matches(regex)返回false,尽管我认为它应该是true
我正在使用Java正则表达式 哦,我真的很想念Perl!!Java正则表达式太难了 无论如何,下面是我的代码Java matches(regex)返回false,尽管我认为它应该是true,java,regex,match,Java,Regex,Match,我正在使用Java正则表达式 哦,我真的很想念Perl!!Java正则表达式太难了 无论如何,下面是我的代码 oneLine = "{\"kind\":\"list\",\"items\""; System.out.println(oneLine.matches("kind")); 我希望屏幕上会显示“真”,但我只能看到“假” 代码怎么了?我怎样才能修好它 提前谢谢你 Matches尝试匹配整个字符串(隐式^和$锚定),您希望使用contains()检查字符串的部分。该方法旨在匹配整个字符串。
oneLine = "{\"kind\":\"list\",\"items\"";
System.out.println(oneLine.matches("kind"));
我希望屏幕上会显示“真”,但我只能看到“假”
代码怎么了?我怎样才能修好它
提前谢谢你 Matches尝试匹配整个字符串(隐式
^
和$
锚定),您希望使用contains()
检查字符串的部分。该方法旨在匹配整个字符串。所以你需要一些类似的东西:
.*kind.*
演示:将正则表达式作为参数,其中锚定是隐式的。因此,您的正则表达式模式将在字符串的开头一直匹配到末尾
由于字符串的开头不是“kind”
,因此它返回false
现在,根据您当前的问题,我认为您不需要在这里使用regex
。简单地使用这个方法就可以了:-
oneLine.contains("kind");
或者,如果要使用匹配
,则构建正则表达式以匹配完整字符串:-
oneLine.matches(".*kind.*");
试试另一种方式:“善良”。匹配(一行);至少在本例中,您可以使用
contains
。