正则表达式-断言

Sabthever

正则表达式中的“断言”(Assertion)只判断“当前位置”是否满足某种条件,不消耗字符(即匹配宽度为 0)。即只用于匹配,但是最终的结果不包括的部分。


  1. 正向肯定先行断言
    语法: (?=⋯)
    含义:从此处向右看,必须能匹配 ,但 本身不算匹配结果。
    例: a(?=bc)abc 中可找到 a 位置。
  2. 正向否定先行断言
    语法: (?!⋯)
    含义:从此处向右看,必须不能匹配
    例: a(?!bd)abc 成功,对 abd 失败。
  3. 正向肯定后发断言
    语法: (?<=⋯)
    含义:从此处向左看,必须能匹配 ;固定长度、多数引擎要求定长。
    例: (?<=a)bcabc 中匹配 bc
  4. 正向否定后发断言
    语法: (? 含义:从此处**向左看**,必须**不能**匹配 。 例:(? 对 abc 失败,对 xbc 成功。
  • 标题: 正则表达式-断言
  • 作者: Sabthever
  • 创建于 : 2025-10-22 13:32:30
  • 更新于 : 2025-10-23 08:45:20
  • 链接: https://sabthever.cn/2025/10/22/technology/regexAssertion/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
目录
正则表达式-断言