正则表达式的先行断言(lookahead)和后行断言(lookbehind)

正则表达式的先行断言(lookahead)和后行断言(lookbehind)

1. (?=pattern)

只匹配后面紧跟着pattern正则的那一部分
即:对后头提出要求,后头必须匹配pattern正则

  1. 例如对"a regular expression"这个字符串:
    要想只匹配"a regular expression"中高亮的re,则可以使用/re(?=gular)/g
  2. 测试结果如下: 正则表达式在线测试 | 菜鸟工具

image

2. (?!pattern)

只匹配后面紧跟着不是pattern正则的那一部分
即:对后头提出要求,后头不能匹配pattern正则

  1. 例如对"a regular expression"这个字符串:
    要想只匹配"a regular expression"中高亮的re,则可以使用/re(?!g)/g
    image

3. (?<=pattern)

只匹配前面是pattern正则的那一部分
即:对前头提出要求,前头必须匹配pattern正则

  1. 例如对"a regular expression"这个字符串:
    要想只匹配"a regular expression"中单词开头的re,则可以使用/(?<=\s)re/g
    image

4. (?<!pattern)

只匹配前面不是pattern正则的那一部分
即:对前头提出要求,前头不能匹配pattern正则

  1. 例如对"a regular expression are"这个字符串:
    要想只匹配"a regular expression are"中单词中间的re,
    则可以使用/(?<!\W)re(?=\w)/g

tips:
其中,\W\w的否定,匹配任何非单词字符,等价于 [^A-Za-z0-9_]
!\W 则相当于 \w

image

posted @   果然coding  阅读(203)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示