2011-03-03 42 views
12

是否可以创建一个reqex来查找不是特定集的字符?基于字符串的Python字符串替换不在正则表达式中

不是黑名单一串字符和替换它们,这将是我更容易让一组特定的和替换不在该字符集。

我一套看起来是这样的: [.A-ZA-Z0-9]

我愿做这样的事情:

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

显然这段代码将代替我想要的字符保留,是否有方法来取代不在该集合中的字符?

回答

17

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

+1

用户可以输入 “” 作为文件名。那会好吗? – usr 2011-05-26 18:45:34

2

尝试用:

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