Python字符串替换基于不在RegEx中的字符

Python String replace based on chars NOT in RegEx

是否可以创建一个reqex,找到NOT不是特定集的字符?

而不是将一堆字符列入黑名单并替换它们,我会更容易允许某个集合并替换不在该集合中的字符。

我的设置如下:
[.A-ZA-Z0-9]

我想做这样的事情:

1
clean_filename = re.sub(r'([.a-zA-Z0-9])',"_", filename)

显然这段代码会替换我想要保留的字符,有没有办法替换那组中的字符?


是的,使用^否定"修饰符":r'[^.a-zA-Z0-9]'


1
clean_filename = re.sub(r'[^.a-zA-Z0-9]',"_", filename)


试试:

1
re.sub(r'[^a-zA-Z0-9]',"_", filename)