正则的最终目的是匹配,考虑这样一种情况,我们需要将一个字符串从特定的位置进行分割,不过这个位置比较特殊,它不是一个字符,而是某个特定字符串的前面(或者后面)。
那么我们需要使用零宽正向先行(后行)断言。
(?=pattern)
:(零宽正向先行断言),pattern 是匹配的字符串,这个正则表达式代表与 pattern 前面的,字符前的“间隙”进行匹配。
(?<=pattern)
:(零宽正向后行断言),匹配 pattern 后面的“间隙”。
同样的,我们也可以用类似的语法表示排除某个“间隙”。
(?!pattern)
:(零宽负向先行断言)
(?<!pattern)
:(零宽负向后行断言)