今天在解决一个别人的问题时又用到了java正则表达式。具体是用到了正则表达式的非匹配用法。“?=”
字符串abc1asfabc2asdvaabc3defghijk
要求提取出两个abc\d之间或abc\d到字符串尾的字符串.即asf、asdva、defghijk
代码如下
public static void main(String[] args) {
String s = "abc1asfabc2asdvaabc3defghijk";
Pattern p = Pattern.compile("abc\\d+([a-z]+)(?=(abc\\d+)|$)");
Matcher m = p.matcher(s);
while(m.find()) {
System.out.println(m.group(1));
}
}