我有很大的字符串数据,我要删除A-Z,a-z和0-9以外的所有字符 我能够删除几乎所有字符,但'\'是一个问题。
除去所有其他角色,但'\'正在解决问题
def replace_all(text, dic):
for i, j in dic.iteritems():
text = text.replace(i, j)
return text
reps = {' ':'-','.':'-','"':'-',',':'-','/':'-',
'<':'-',';':'-',':':'-','*':'-','+':'-',
'=':'-','_':'-','?':'-','%':'-','!':'-',
'$':'-','(':'-',')':'-','\#':'-','[':'-',
']':'-','\&':'-','@':'-','\W':'-','\t':'-'}
x.name = x.name.lower()
x1 = replace_all(x.name,reps)
答案 0 :(得分:4)
我有很大的字符串数据,我要删除除A-Z,a-z和0-9之外的所有字符
换句话说,您只想保留这些字符。
字符串类已经提供了一个测试“每个字符是字母还是数字?”,称为.isalnum()
。因此,我们只能filter
:
>>> filter(str.isalnum, 'foo-bar\\baz42')
'foobarbaz42'
答案 1 :(得分:1)
birryee是正确的,你需要用第二个反斜杠来逃避反斜杠。
答案 2 :(得分:1)
删除除A-Z,a-z和0-9
以外的所有字符
使用正则表达式指定要保留的字符,而不是尝试列出要删除的所有字符(需要长时间),而不是:
import re
text = re.sub('[^0-9A-Za-z]', '-', text)
答案 3 :(得分:1)
如果你有一个字符串:
a = 'hi how \\are you'
您可以通过执行以下操作将其删除:
a.replace('\\','')
>'hi how are you'
如果您有遇到问题的具体情况,我建议您发布更多细节。