明明白白正则表达式之零宽断言
作者:互联网
之前没有理解透彻,借助
^
和$
理解一下,最近又自己测试了一下,终于是明白这个东西了
这篇文章看懂需要一部分正则的基础,我推荐这篇文章正则表达式30分钟入门教程
零宽断言
(?=exp)
这个和(?<=exp)
都可以看成一个输入文字时的一个光标,就像^
和$
一样匹配的是一个位置,(?=exp)
表示这个光标后面的内容是exp。同理,(?<=exp)
表示这个光标前面的内容是exp。把其中的<
看成一个箭头就很容易理解了。
比如这段文字中
正则表达式中的零宽断言不容易理解。负向零宽断言也是一样。
使用(?=断).
匹配的结果就是
断
断
使用(?<=断).
匹配的结果就是
言
言
理解上面这段话后,不难发现(?=断).
等同于断
,.(?<=断)
也等同于断
。
看成一个光标就十分帮助理解这个东西
负向零宽断言
同样负向零宽断言也可以这样理解
(?!exp)
光标后面的位置不是exp(?<!exp)
光标前面的位置不是exp
测试文本
一二三
(?!二).
表示光标后面不是二
的字符,匹配结果:
一
三
(?<!二).
表示光标前面不是二
的字符匹配结果
一
二
标签:匹配,断言,正则表达式,明明白白,负向,理解,exp,之零宽,光标 来源: https://www.cnblogs.com/pong137/p/14720209.html