如何使用正则表达式排除后接指定内容的匹配结果
正则匹配规则修正方案
原正则问题说明
你当前使用的A.*?D(?!toA.*?D)规则会错误匹配第一行末尾的AxxD片段,因为该片段后续没有toA.*?D结构,不符合你的筛选需求。
正确正则规则
如果你的待匹配内容是每行一条独立字符串,开启多行匹配模式后使用如下规则即可:
^A(?:(?!toA).)*D$
规则说明
^匹配行的起始位置,确保从行首开始匹配A匹配开头的固定字符A(?:(?!toA).)*非捕获组,匹配任意数量的、后续不会出现toA序列的字符,确保整行不存在toA片段D匹配结尾的固定字符D$匹配行的结束位置,确保匹配到行尾
匹配结果验证
针对你提供的待匹配文本,该规则仅会命中后两行内容:
AvvDAnnD
内容的提问来源于stack exchange,提问作者OAO
相关产品推荐
相关产品推荐

