正则表达式我想匹配具有模式匹配的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.abc.com"},{"id":"364075-13","http://www.xyz.com"},{"id":"364121-13","http://www.efg.com"}]
代码:
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);
我期待b可能是真实的,但它返回false。我有正确的错误。
请让我知道如何解决它。
感谢
你确定你想'http:\\'而不是'http://'。另外,当定义一个模式时,你必须小心'\\',因为它是字符串的转义字符,所以在你的字符串'pttrn'内'\\'将被转义为'\'... – Lucas 2013-03-08 17:56:06
fixed http:\\到http:// – SUM 2013-03-08 18:09:24
你想要什么?要反序列化一些JSON?如果是这样,为什么不使用像谷歌GSON这样的一些库? – davidbuzatto 2013-03-08 18:10:21