【问题标题】:I want to remove '\' from a string in python [duplicate]我想从python中的字符串中删除'\' [重复]
【发布时间】:2012-05-06 11:57:00
【问题描述】:

可能重复:
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)

【问题讨论】:

  • 您可能需要使用“\\”转义字符串。
  • 我无法摆脱 '\' 字符,我该如何使用上面的代码呢?非常感谢您的回复:)
  • 您是否知道仅允许 a-z 会排除其他字母表中的某些字母,例如 å?这真的是你想做的吗?

标签: python controls character


【解决方案1】:

birryee 是正确的,你需要用第二个反斜杠转义反斜杠。

【讨论】:

  • 在那种情况下,投赞成票而不是添加另一个答案不是更好吗?
  • @Darthfett:他没有将其发布为答案。
  • @MarkByers 谢谢,我很抱歉没有找到那个。
【解决方案2】:

删除除 A-Z、a-z 和 0-9 以外的所有字符

不要尝试列出您要删除的所有字符(这将花费 很长时间 时间),而是使用正则表达式来指定您希望保留的那些字符:

import re
text = re.sub('[^0-9A-Za-z]', '-', text)

【讨论】:

    【解决方案3】:

    如果你有一个字符串:

    a = 'hi how \\are you'
    

    您可以通过以下方式删除它:

    a.replace('\\','')
    
    >'hi how are you'
    

    如果您有遇到问题的特定上下文,我建议您发布更多详细信息。

    【讨论】:

    • 实际上我正在研究piratebay 数据转储,其中属性由“|”分隔。我正在为它制作一个索引器。在种子名称中,我只需要文本,不需要符号或控制词
    • 看来您走在了正确的轨道上。转义 \ 将允许您将其包含在字典中。你可以用一个简短的 lambda 函数和一个正则表达式而不是一个大字典来使代码更优雅。
    【解决方案4】:

    我有相当大的字符串数据,我必须删除除 A-Z、a-z 和 0-9 以外的所有字符

    换句话说,您只想保留这些字符。

    字符串类已经提供了一个测试“每个字符都是字母还是数字?”,称为.isalnum()。所以,我们可以直接filter

    >>> filter(str.isalnum, 'foo-bar\\baz42')
    'foobarbaz42'
    

    【讨论】:

    • 这行不通。 filter(str.isalnum, 'foo-bar\\bazå42')'foobarbaz\xe542'
    • 这个功能需要库吗?
    • @kindall:是的,å 是字母,因此是字母数字。然而按字母顺序,å 出现在 z 之后。 OP专门只要求a-z。因为 å 不在 a-z 范围内,所以应该排除它,但这个解决方案不会排除它。要么问题错了,要么答案错了。
    • isalnum 可以识别 unicode,因此它不仅可以将常规 ascii 视为字母数字(根据区域设置)。
    • 不需要库。它是内置的。
    猜你喜欢
    • 2020-11-12
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 2018-08-27
    相关资源
    最近更新 更多