基于不在正则表达式中的字符的Python字符串替换

基于不在正则表达式中的字符的Python字符串替换,python,regex,Python,Regex,是否可以创建一个reqex来查找不属于特定集合的字符 与其将一堆字符列入黑名单并替换它们,我更容易允许某个集合并替换不在该集合中的字符 我的套装看起来像这样: [.a-zA-Z0-9] 我想这样做: clean_filename = re.sub(r'([.a-zA-Z0-9])', "_", filename) 显然,此代码将替换我想要保留的字符,有没有办法替换不在该集中的字符?是的,使用^否定“修饰符”:r'[^.a-zA-Z0-9]尝试: re.sub(r'[^a-zA-Z0-9]',

是否可以创建一个reqex来查找不属于特定集合的字符

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

我的套装看起来像这样: [.a-zA-Z0-9]

我想这样做:

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

显然,此代码将替换我想要保留的字符,有没有办法替换不在该集中的字符?

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

re.sub(r'[^a-zA-Z0-9]', "_", filename)
用户可以输入“.”作为文件名。可以吗?
clean_filename = re.sub(r'[^.a-zA-Z0-9]', "_", filename)