正则表达式进阶,零宽正回顾断言,零宽负回顾断言

零宽断言,表示匹配字符的时候再添加一些定位条件,使匹配更精准,但又不匹配到字符串。

举例 解释
\w+(?=ing) 匹配以ing结尾的单词前缀(不包括ing),talking匹配到talk
\w+(?!ing) 匹配不是以ing结尾的多个字符,do talking匹配到do
(?<=re)\w+ 匹配以re开头的多个字符(不包括re),redo匹配到do
(?<!re)\w+ 匹配排除re开头的单词外的其他单词,refreshing wether匹配到weather

组合起来使用
(?<=\s)\d+(?=\s) 匹配两边是空白符的数字,不包括空白符,相当于Vim中在单词上按下*号的结果

另外,推荐一个测试正则表达式的网站: Regexr
regex,是正则regular expression的缩写,加上r就当是被正则坑的人的意思吧😂