正则表达式之零宽断言

作者在 2021-03-28 02:47:41 发布以下内容

有时候在使用正则表达式做匹配的时候,我们希望匹配一个字符串,这个字符串的前面或后面需要是特定的内容,但我们又不想要前面或后面的这个特定的内容,(这里的特定内容是指字符串,如果是字符可以用^排除),这时候就需要零宽断言的帮助了。所谓零宽断言,简单来说就是匹配一个位置,这个位置满足某个正则,但是不纳入匹配结果的,所以叫“零宽”,而且这个位置的前面或后面需要满足某种正则。

  • 正预测先行断言
    • 断言自身出现的位置的后面能匹配表达式exp
    • 语法格式
      • (?=exp)
  • 正回顾后发断言
    • 断言自身出现的位置的前面能匹配表达式exp
    • 语法格式
      • (?<=exp)
  • 负预测先行断言
    • 断言此位置的后面不能匹配表达式exp
    • 语法格式
      • (?!exp)
  • 负回顾后发断言
    • 断言此位置的前面不能匹配表达式exp
    • 语法格式
      • (?<!exp)

示例

re.search(r'迅雷(?!不及掩耳)', '迅雷下载利器')        # 匹配成功
re.search(r'迅雷(?!不及掩耳)', '迅雷不及掩耳之势')    # 匹配失败



Python | 阅读 910 次
文章评论,共0条
游客请输入验证码
浏览2795375次
文章归档