我想编写一个Python函数,该函数输入文本并将VALID_CHARS中未指定的每个字符替换为空格''。使用正则表达式可以做到吗?
正则表达式解决方案应与以下Python代码相同:
def clean_text(text):
text_valid = ''
for char in text:
if char in VALID_CHARS:
text_valid += char
else:
text_valid += ' '
return text_valid
答案 0 :(得分:1)
您应该查看可能对您有帮助的库re。
我认为这应该有效:text_valid = re.sub(re.compile('[^'+re.escape(VALID_CHARS)+']'), r'', text)
答案 1 :(得分:1)
您可以即时基于VALID_CHARS
创建一个正则表达式,然后使用re.sub
:
import re
def clean_text(text):
regex = '[^' + re.escape(VALID_CHARS) + ']'
return re.sub(regex, ' ', text)
re.escape
确保诸如]
之类的字符不会破坏正则表达式。
答案 2 :(得分:1)
您可以尝试这样的事情
re.sub(r'[^{}]'.format(re.escape(VALID_CHARS)), '', text)