如何定义字符(在LIST或STRING中),并将任何其他字符替换为..让我们说'?'
示例:
strinput = "abcdefg#~"
legal = '.,/?~abcdefg' #legal characters
while i not in legal:
#Turn i into '?'
print output
答案 0 :(得分:4)
将合法字符放入集合中,然后使用in
测试字符串的每个字符。使用str.join()
方法和conditional expression构建新字符串。
>>> s = "test.,/?~abcdefgh"
>>> legal = set('.,/?~abcdefg')
>>> s = ''.join(char if char in legal else '?' for char in s)
>>> s
'?e??.,/?~abcdefg?'
>>>
答案 1 :(得分:1)
如果这是一个大文件,请读取数据块,然后应用re.sub(..)
,如下所示。一个类中的^
(方括号)代表否定(类似于说"&#34以外的任何东西;)
>>> import re
>>> char = '.,/?~abcdefg'
>>> re.sub(r'[^' + char +']', '?', "test.,/?~abcdefgh")
'?e??.,/?~abcdefg?'