正则表达式的先行断言(lookahead)和后行断言(lookbehind)
正则表达式的先行断言(lookahead)和后行断言(lookbehind)
1. (?=pattern)
只匹配后面紧跟着
pattern
正则的那一部分
即:对后头提出要求,后头必须匹配pattern
正则
- 例如对"a regular expression"这个字符串:
要想只匹配"are
gular expression"中高亮的re
,则可以使用/re(?=gular)/g
。 - 测试结果如下: 正则表达式在线测试 | 菜鸟工具
2. (?!pattern)
只匹配后面紧跟着不是
pattern
正则的那一部分
即:对后头提出要求,后头不能匹配pattern
正则
- 例如对"a regular expression"这个字符串:
要想只匹配"a regular expre
ssion"中高亮的re
,则可以使用/re(?!g)/g
。
3. (?<=pattern)
只匹配前面是
pattern
正则的那一部分
即:对前头提出要求,前头必须匹配pattern
正则
- 例如对"a regular expression"这个字符串:
要想只匹配"are
gular expression"中单词开头的re
,则可以使用/(?<=\s)re/g
。
4. (?<!pattern)
只匹配前面不是
pattern
正则的那一部分
即:对前头提出要求,前头不能匹配pattern
正则
- 例如对"a regular expression are"这个字符串:
要想只匹配"a regular expre
ssion are"中单词中间的re
,
则可以使用/(?<!\W)re(?=\w)/g
。
tips:
其中,\W
是\w
的否定,匹配任何非单词字符,等价于[^A-Za-z0-9_]
!\W 则相当于\w
分类:
js
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律