大家好:我正在尝试使用零宽度断言否定前瞻来匹配包含字符串“abc”的字符串,这就是我得到的:
Pattern pattern = new Perl5Compiler().compile("((?!abc).)+");
Perl5Matcher matcher = new Perl5Matcher();
System.out.println(matcher.matches("abc", pattern));
System.out.println(matcher.matches("abdas dfas", pattern));
System.out.println(matcher.matches("d abc ", pattern));
System.out.println(matcher.matches("fafabcdef", pattern));
结果是:
false
true
false
false
我无法理解的是为什么字符串“abc”不匹配,它在断言“abc”之后不包含任何字符。谁能弄清楚这是如何工作的?tks~