正则表达式学习3-负向零宽断言

负向零宽断言 (?!表达式) 也是匹配一个零宽度的位置,不过这个位置的“断言”取表达式的反值,例如 (?!表达式) 表示 表达式 前面的位置,如果 表达式 不成立 ,匹配这个位置;如果 表达式 成立,则不匹配

 加粗为被匹配到的:

expression 
expressionexpression;
expression。       

以上为使用 .+n(?!。) 的匹配结果。注意与 .+n[^。] 匹配的区别

expression
expression,
expression;
expression。    

 上面的例子,总结来说,就是[^。]一定要要有值,而(?!。)则只要不相同,即使没有值也是可以的,但是其中的表达式则不会被获取到。

和之前那些零宽断言一样,.+n(?!。)相当于.+n和^。的组合体,只不过当匹配到非。的时候,这个字符是不会被获取到的。

原文地址:https://www.cnblogs.com/danlis/p/6867420.html