正则表达式进阶,零宽正回顾断言,零宽负回顾断言
零宽断言,表示匹配字符的时候再添加一些定位条件,使匹配更精准,但又不匹配到字符串。
举例 | 解释 |
---|---|
\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就当是被正则坑的人的意思吧😂