正则表达式,搜索指定内容,排除其他字符搜索

技巧 z197 346次浏览 已收录 用手机观看

使用正则表达式搜索指定的内容,前后排除其他字符搜索,比如我想搜ZZZ,排除AZZZ

想匹配包含“ZZZ”但排除包含“AZZZ”的情况,可用负向前瞻(negative lookahead)。

负向前瞻是一种零宽度断言,能确保某个子字符串不出现在匹配结果之前。

搜ZZZ,排除AZZZ,可以这样写正则表达式:

^(?!.*AZZZ).*ZZZ.*

解释:

^:表示字符串的开始。
(?!):表示负向前瞻。
.*AZZZ:表示任意字符(.*)后跟“AZZZ”。
.*ZZZ:表示任意字符(.*)后跟“ZZZ”。
意思是:从字符串的开始,确保后面没有包含“AZZZ”的子字符串,然后匹配包含“ZZZ”的子字符串。

这样,你就能匹配包含“ZZZ”但排除包含“AZZZ”的字符串。