Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.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为变量匹配正则表达式_Java - Fatal编程技术网

java为变量匹配正则表达式

java为变量匹配正则表达式,java,Java,我想匹配任何具有该模式的字符串 {"id":"362237- any number of characters followed by "http//:www.abc.com" any number of characters followed by "id":"364121- any number of characters followed by "http://www.efg.com" 我想将上面的模式与下面的字符串匹配 [{"id":"362237-13","http//:www.

我想匹配任何具有该模式的字符串

{"id":"362237- 
any number of characters followed by
"http//:www.abc.com" 
any number of characters followed by
"id":"364121-
any number of characters followed by
"http://www.efg.com"
我想将上面的模式与下面的字符串匹配

[{"id":"362237-13","http//:www.abc.com"},{"id":"364075-13","http://www.xyz.com"},{"id":"364121-13","http://www.efg.com"}]
代码:

我原以为b是真的,但它返回false。我把正则表达式搞错了

请让我知道如何修理它


谢谢

你需要用反斜杠将你的花括号转到正则表达式引擎。。。您需要用另一个反斜杠将反斜杠转义为Java

String pttrn=".*\\{\"id\":\"362237-.*\"http//:www.abc.com\".*\"id\":\"364121-.*\"http://www.efg.com\".*";
String mtchr="[{\"id\":\"362237-13\",\"http//:www.abc.com\"},{\"id\":\"364075-13\",\"http://www.xyz.com\"},{\"id\":\"364121-13\",\"http://www.efg.com\"}]";
boolean b = Pattern.matches(pttrn, mtchr);
System.out.println("b is !!" + b);

确实要使用
http:\\
而不是
http://
。此外,在定义模式时,您必须小心
\\
,因为它是字符串的转义字符,所以字符串中的
\\
将转义为
\
…修复了http:\\tohttp://What 你想要什么?反序列化一些JSON?如果是这样的话,为什么不使用像Google GSON这样的库呢?我想检查一下json是否有我想要的ID和URL。当一个正确的答案没有得到跟进和接受时,这是一个令人悲伤的日子。或者浏览了128次(并且正在计算),甚至没有投票。
String pttrn=".*\\{\"id\":\"362237-.*\"http//:www.abc.com\".*\"id\":\"364121-.*\"http://www.efg.com\".*";
String mtchr="[{\"id\":\"362237-13\",\"http//:www.abc.com\"},{\"id\":\"364075-13\",\"http://www.xyz.com\"},{\"id\":\"364121-13\",\"http://www.efg.com\"}]";
boolean b = Pattern.matches(pttrn, mtchr);
System.out.println("b is !!" + b);