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);