Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java matches(regex)返回false,尽管我认为它应该是true_Java_Regex_Match - Fatal编程技术网

Java matches(regex)返回false,尽管我认为它应该是true

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()检查字符串的部分。该方法旨在匹配整个字符串。

我正在使用Java正则表达式

哦,我真的很想念Perl!!Java正则表达式太难了

无论如何,下面是我的代码

oneLine = "{\"kind\":\"list\",\"items\"";
System.out.println(oneLine.matches("kind"));
我希望屏幕上会显示“真”,但我只能看到“假”

代码怎么了?我怎样才能修好它


提前谢谢你

Matches尝试匹配整个字符串(隐式
^
$
锚定),您希望使用
contains()
检查字符串的部分。

该方法旨在匹配整个字符串。所以你需要一些类似的东西:

.*kind.*
演示:

将正则表达式作为参数,其中锚定是隐式的。因此,您的正则表达式模式将在字符串的开头一直匹配到末尾

由于字符串的开头不是
“kind”
,因此它返回
false

现在,根据您当前的问题,我认为您不需要在这里使用
regex
。简单地使用这个方法就可以了:-

oneLine.contains("kind");
或者,如果要使用
匹配
,则构建正则表达式以匹配完整字符串:-

oneLine.matches(".*kind.*");

试试另一种方式:“善良”。匹配(一行);至少在本例中,您可以使用
contains