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

forai 发布于 2014/08/03 12:45
阅读 159
收藏 0

要匹配的文字是: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);  的时候就报错了。

错误信息是:


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

加载中
0
憨厚的瓜
憨厚的瓜

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

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

0
forai
forai

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

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

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

\已经转义成为\\了。

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

0
vidy_tu
vidy_tu

{}不加转义就代表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());




0
forai
forai

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

{}不加转义就代表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());




好的  非常感谢
返回顶部
顶部