是否可以创建一个reqex,找到NOT不是特定集的字符?
不是将一堆字符列入黑名单并替换它们,而是让我更容易允许某个集合并替换不在该集合中的字符。
我的设置如下: [.A-ZA-Z0-9]
我想做这样的事情:
clean_filename = re.sub(r'([.a-zA-Z0-9])', "_", filename)
显然这段代码会替换我想保留的字符,有没有办法替换那组中的字符?
答案 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)