转自:http://kabike.iteye.com/blog/1759373
零宽度断言
假设想提取字符串中的括号中的数字(不包括括号),其实可以用这样的模式(\d+)
但是这样会把括号也包括到匹配结果中,还要最后去掉括号.这时可以考虑零宽度断言,零宽度断言就像一种判断,
比如下面这个正则表达式,匹配的模式为: 多个数字,并且这些数字之前是"(",并且这些数字之后是")"
- Pattern p = Pattern.compile("(?<=\\()\\d+(?=\\))");
- String src = "some useless word (497872028) some other crap 1321112232";
- Matcher m = p.matcher(src);
- while (m.find()) {
- System.out.println(m.group());
- }
- // output 497872028