正则表达式中的断言

正则表达式主要用于文本匹配,并从匹配的文本中提取出感兴趣的字段。正则表达式的应用非常广泛,已经有非常多的编程语言和工具支持正则表达式。这里有一篇文章30分钟学会正则表达式。本文主要记录一下正则表达式中的零宽断言,因为这一部分是我平时很少用到,掌握不牢的部分。

零宽断言是正则表达式中匹配位置的一种方式。零宽断言分为以下几种:

零宽度正预测先行断言

  • 语法:(?=<exp>)
  • 含义:从当前位置开始向前(向右)成功匹配exp,则匹配位置成功
  • 示例:(?=abc)
  • 示例含义:匹配向右看三个字符是’abc’的位置

零宽度负预测先行断言

  • 语法:(?!<exp>)
  • 含义:从当前位置开始向前(向右)无法成功匹配exp,则匹配位置成功
  • 示例:(?!abc)
  • 示例含义:匹配向右看三个字符不是’abc’的位置

零宽度正回顾后发断言

  • 语法:(?<=<exp>)
  • 含义:从当前位置开始向后(向左)成功匹配exp,则匹配位置成功
  • 示例:(?<=abc)
  • 示例含义:匹配往左看连续三个字符为’abc’的位置

零宽度负回顾后发断言

  • 语法:(?<!<exp>)
  • 含义:从当前位置开始向后(向左)无法成功匹配exp,则匹配位置成功
  • 示例:(?<!abc)
  • 示例含义:匹配往左看连续三个字符不为’abc’的位置