4
回答
请帮我看看,正则表达式在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);  的时候就报错了。

错误信息是:


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

举报
forai
发帖于3年前 4回/154阅
共有4个答案 最后回答: 3年前

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

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

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

\已经转义成为\\了。

{} 这两个如果加转义符号的话,会报错啊。

{}不加转义就代表group了

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




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

{}不加转义就代表group了

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




好的  非常感谢
顶部