Skip to main content
 首页 » 编程设计

python之查找所有不在正则表达式模式中的字符

2025年05月04日28thcjp

假设我有一个合法字符的正则表达式

legals = re.compile("[abc]") 

我可以像这样在字符串中返回合法字符列表:

finder = re.finditer(legals, "abcdefg") 
[match.group() for match in finder] 
>>>['a', 'b', 'c'] 

如何使用正则表达式查找不在正则表达式中的字符列表?在我的例子中,IE 会返回

['d','e','f','g'] 

编辑:澄清一下,我希望找到一种无需修改正则表达式本身即可执行此操作的方法。

请您参考如下方法:

否定字符类:

>>> illegals = re.compile("[^abc]") 
>>> finder = re.finditer(illegals, "abcdefg") 
>>> [match.group() for match in finder] 
['d', 'e', 'f', 'g'] 

如果你不能这样做(并且你只处理一个字符长度的匹配),你可以

>>> legals = re.compile("[abc]") 
>>> remains = legals.sub("", "abcdefg") 
>>> [char for char in remains] 
['d', 'e', 'f', 'g']