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

时间:2011-03-03 16:22:45

标签: python regex

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

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

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

我想做这样的事情:

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

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

3 个答案:

答案 0 :(得分:20)

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

尝试:

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