明明白白正则表达式之零宽断言

之前没有理解透彻,借助^$理解一下,最近又自己测试了一下,终于是明白这个东西了
这篇文章看懂需要一部分正则的基础,我推荐这篇文章正则表达式30分钟入门教程


零宽断言


(?=exp)这个和(?<=exp)都可以看成一个输入文字时的一个光标,就像^$一样匹配的是一个位置,(?=exp)表示这个光标后面的内容是exp。同理,(?<=exp)表示这个光标前面的内容是exp。把其中的<看成一个箭头就很容易理解了。


比如这段文字中

正则表达式中的零宽断言不容易理解。负向零宽断言也是一样。

使用(?=断).匹配的结果就是


使用(?<=断).匹配的结果就是


理解上面这段话后,不难发现(?=断).等同于.(?<=断)也等同于
看成一个光标就十分帮助理解这个东西

负向零宽断言

同样负向零宽断言也可以这样理解

  • (?!exp)光标后面的位置不是exp
  • (?<!exp)光标前面的位置不是exp

测试文本

一二三

(?!二). 表示光标后面不是的字符,匹配结果:


(?<!二).表示光标前面不是的字符匹配结果


测试环境

posted @ 2021-04-29 23:22  康舒服冰红茶  阅读(108)  评论(0编辑  收藏  举报