我想从python中的字符串中删除'\'

时间:2012-04-25 18:37:36

标签: python controls character

  

可能重复:
  How to refer to “\” sign in python string

我有很大的字符串数据,我要删除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)

4 个答案:

答案 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'

如果您有遇到问题的具体情况,我建议您发布更多细节。