java – 具有“{”的字符串的模式匹配

首先我这样做了 –
String str = "{\"hits\":[{\"links_count\":6,\"forum_count\":11}],\"totalHitCount\":1}";

        Assert.assertTrue(str.matches("{\"hits\":[{\"links_count\":[0-9]{1,},\"forum_count   \":11}],\"totalHitCount\":[0-9]{1,}}"),"Partnership message does not appear");

这让我跟着错误

Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition
{"hits":[\{"links_count":[0-9]{1,"forum_count":11}],"totalHitCount":[0-9]{1,}}

然后我做了(逃脱“{”) –

String str = "\\{\"hits\":[\\{\"links_count\":6,\"forum_count\":11\\}],\"totalHitCount\":1\\}";

    Assert.assertTrue(str.matches("\\{\"hits\":[\\{\"links_count\":[0-9]{1,}\\}"),"Partnership message does not appear");

并得到以下错误

Exception in thread "main" java.lang.AssertionError: Partnership message does not appear expected:<true> but was:<false>

在这里想念的是什么?

解决方法

你不需要逃脱{[在你的输入中.但是你需要在你的正则表达式中逃避[].

试试这个:

String str = "{\"hits\":[{\"links_count\":6,\"totalHitCount\":1}";

System.out.println(str.matches("\\{\"hits\":\\[\\{\"links_count\":[0-9]{1,\"forum_count\":11\\}\\],}\\}"));

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...