零宽断言
(?=exp) 也叫零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式 exp。比如 \b\w+(?=ing\b),匹配以 ing 结尾的单词的前面部分(除了 ing 以外的部分)。如查找 I’m singing,它会匹配 sing。
(?<=exp) 也叫零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式 exp 。例如 (?<=\bre)\w+\b 会匹配以 re 开头的单词的后半部分(除了 re 以外的部分),例如在查找 reading a book 时,它会匹配 ading 。
负向零度断言
(?!exp) 零宽度负预测先行断言,断言位置的后面不能匹配表达式 exp。例如: \d{3}(?\d),能匹配三位数字,而且三维数字的后面不能是数字;\b((?!abc)\w)+\b 匹配不包含连续字符串 abc 的单词。
(?<!exp) 零宽度负回顾后发断言,断言位置的前面不能匹配表达式 exp。例如:(?<![a-z])\d{7} 匹配前面不是小写字母的七位数字。