标签:
最近需要使用正则表达式的非捕获,记录一下自己的理解,可能不全面。
(?=X) X,通过零宽度的正 lookahead
(?!X) X,通过零宽度的负 lookahead
(?<=X) X,通过零宽度的正 lookbehind
(?<!X) X,通过零宽度的负 lookbehind
零宽带 说明了不会捕获,但可能有例外。
正、负 应该是针对断言来说的,(?=X) 、(?<=X)为正,(?!X) X、(?<!X) X 为负。
例外:
Pattern compile = Pattern.compile(".{3}(?=a)");
Matcher matcher = compile.matcher("444a66b");
while (matcher.find())
{
System.out.println(matcher.group());
}
结果为:444
但如果为.{3}(?=a) 改成(?=a).{3}
结果为:a66
标签:
原文地址:http://www.cnblogs.com/wujiexiang/p/4598263.html