开发者社区> 问答> 正文

请帮我看看,正则表达式在OSC测试上OK,在java里面compile的时候就报错。?报错

要匹配的文字是:a:2:{i:26753;a:1:{s:5:"price";s:5:"15.00";}i:26754;a:1:{s:5:"price";s:5:"20.00";}}

正则表达式是:i:\d*;a:1:{s:5:"price";s:\d*:"\d*.\d*";}

用开源中国的正则表达式测试是可以匹配到的

但是我放到Java代码里面:

Pattern pat = Pattern.compile(regEx);  的时候就报错了。

错误信息是:


请各位帮我看看是哪里出问题了 ?

展开
收起
爱吃鱼的程序员 2020-06-15 19:29:53 488 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    放到java里的时候你的`\`转换成`\\`了吗?

    `{}`也是正则里的特殊字符,最好转义掉 

    引用来自“憨厚的瓜”的评论

    放到java里的时候你的`\`转换成`\\`了吗?

    `{}`也是正则里的特殊字符,最好转义掉 

    {}不加转义就代表group了

    Stringstr="a:2:{i:26753;a:1:{s:5:\"price\";s:5:\"15.00\";}i:26754;a:1:{s:5:\"price\";s:5:\"20.00\";}}";Stringptn="i:\\d*;a:1:\\{s:5:\"price\";s:\\d*:\"\\d*.\\d*\";\\}";Patterntmp=Pattern.compile(ptn);System.out.println(tmp.matcher(str).find());




    引用来自“滄海一夢”的评论

    {}不加转义就代表group了

    Stringstr="a:2:{i:26753;a:1:{s:5:\"price\";s:5:\"15.00\";}i:26754;a:1:{s:5:\"price\";s:5:\"20.00\";}}";Stringptn="i:\\d*;a:1:\\{s:5:\"price\";s:\\d*:\"\\d*.\\d*\";\\}";Patterntmp=Pattern.compile(ptn);System.out.println(tmp.matcher(str).find());




    2020-06-15 19:30:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载