要实现的效果

匹配不含指定单词的字符串,例如:不含’abc’的字符串,则‘defg’满足条件,‘111abc222’,‘111abc’,'abc222’不满足条件

方法

使用^(?!.*abc).*$,其中的abc为要排除的字符串


示例

import re

partten = r'^(?!.*abc).*$'
strs = ['abc222', '111abc222', '111abc', 'defg']
for i in strs:
    print(re.findall(partten, i))

输出结果

[]
[]
[]
['defg']

说明只有’defg’匹配成功,结果正确

分析

^$表示从字符串开头开始,匹配到结尾
(?!.*)表示排除形如’…abc’的部分
后面的.*表示’abc’后面还可以有内容


参考链接

https://wwwblogs/wangqiguo/archive/2012/05/08/2486548.html

更多推荐

Python正则表达式排除指定字符串