2. 首先说明一下什么是零宽断言,所谓零宽断言就是并不去真正的匹配字符串文本,而仅仅是匹配对应的位置。
正则表达式中有很多这样的断言,常见的如匹配字符串或者行的起始位置 ^ 和 /A,匹配字符串或者行的末尾 $ 和 /Z,单词边界/B等等。这些简单的就不说了,今天主要说一下界定的使用方法(有些资料叫环式结构,名字而已,不重要)。界定也是一种零宽断言,界定主要有四类:
1、前向界定(肯定顺序环视)(?=exp)
表示右边要匹配exp表达式
输出:(正则的意思是找出连续的数字并且最后一个数字跟着至少一个a-z里面的字符序列)
2、前向否定界定(否定顺序环视)(?!exp)
表示右边不匹配exp表达式
输出:(正则的意思是找出连续的数字,并且最后一个数字后面不能跟任何一个a-z里面的字符序列)
3、反向界定(肯定逆序环视)(?<=exp)
表示左边要匹配exp表达式
输出:(正则的意思是找出连续的数字,并且第一个数字的前面要是a-z中的一个字符)
4、反向否定界定(否定逆序环视)(?<!exp)
表示左边不要匹配exp表达式
输出:(正则的意思是找出连续的数字,并且第一个数字的前面不能是a-z中的一个字符)