正则表达式熟练掌握后可以大大提供工作效率,但是平时大部分使用的都是简单的规则。本文就简单介绍一下高级规则,在一些特殊场景下非常好用
反向引用
使用捕获组的时候,可以在表达式后面部分使用\1\2\{数字}
引用之前匹配到的捕获组
找到连续出现的单词
使用\1
作为反向引用
\b(\w+)\b\s*\1\b
两个单词顺序切换
\b(\w+)\b\s+(\w+) -> $2 $1
\b(?<first>\w+)\b\s+(?<second>\w+) -> $<second> $<first>
零宽断言
从地址中找到深圳市下面的区
- 加入文本如下
鹤岗市南山区
广州市花都区
深圳市南山区
深圳市宝安区
- 表达式如下(其中中文不能使用
\w
,一般使用[\u4e00-\u9fa5]
)
(?<=深圳市)[\u4e00-\u9fa5]+
南山区
宝安区
找到拥有南山区的市
[\u4e00-\u9fa5]+(?=南山区)
鹤岗市
深圳市