正则表达式中匹配向前、向后排除或包含的方法

每次遇到这类需求时,都要搜索好久,并且很多关于正则表达式的资料不会很深入,故特此记录。

肯定式向前查找

匹配字符序列『Start』后跟一个空格和Test字符序列(不区分大小写)
正则模式:Start(?= Test)
匹配字符序列『some』,如果在同一句子中还存在字符序列some
正则模式:some(?=.some.)

否定式向前查找

匹配字符序列『Start』后面不存在test字符序列
正则模式:Start (?!test)
匹配『Start』后面不存在test的行
正则模式: ^.Start((?!test).)$

肯定式向后查找

匹配前面有『rt』的字符序列Test
正则模式:(?<=rt )Test

否定式向后查找

匹配前面没有『n』的字符序列Test
正则模式:(?<!n) Test

注意:即便2018年已经加入ECMAScript标准,Safari和Firefox遇到这种正则写法时依然会报错,可以使用([^n]|^)Test代替。但会多匹配前一个字符,需要额外处理。

欢迎来到Yari的网站:yar2001 » 正则表达式中匹配向前、向后排除或包含的方法