当前位置: 首页 > 面试题库 >

Python将\\\替换为\

郝承悦
2023-03-14
问题内容

所以我似乎无法弄清楚…我有一句话要说,"a\\nb"我希望它成为"a\nb"。我已经尝试了以下所有方法,但似乎都没有效果;

>>> a
'a\\nb'
>>> a.replace("\\","\")
  File "<stdin>", line 1
    a.replace("\\","\")
                      ^
SyntaxError: EOL while scanning string literal
>>> a.replace("\\",r"\")
  File "<stdin>", line 1
    a.replace("\\",r"\")
                       ^
SyntaxError: EOL while scanning string literal
>>> a.replace("\\",r"\\")
'a\\\\nb'
>>> a.replace("\\","\\")
'a\\nb'

我真的不明白为什么最后一个有效,因为这样可以正常工作:

>>> a.replace("\\","%")
'a%nb'

我在这里想念什么吗?

编辑 我知道\是转义字符。我要在这里执行的操作是将所有内容都\\n \\t转换为其他内容,\n
\t并且替换似乎没有按照我的预期进行。

>>> a = "a\\nb"
>>> b = "a\nb"
>>> print a
a\nb
>>> print b
a
b
>>> a.replace("\\","\\")
'a\\nb'
>>> a.replace("\\\\","\\")
'a\\nb'

我希望字符串a看起来像字符串b。但是替换并不能像我想的那样替换斜线。


问题答案:

无需为此使用replace。

您所拥有的是一个编码字符串(使用string_escape编码),并且想要对其进行解码:

>>> s = r"Escaped\nNewline"
>>> print s
Escaped\nNewline
>>> s.decode('string_escape')
'Escaped\nNewline'
>>> print s.decode('string_escape')
Escaped
Newline
>>> "a\\nb".decode('string_escape')
'a\nb'

在Python 3中:

>>> import codecs
>>> codecs.decode('\\n\\x21', 'unicode_escape')
'\n!'


 类似资料:
  • 问题内容: 我正在用Python解析文件中的文本。我必须替换所有换行符(\ n), 因为此文本将生成html-content。例如,这是文件中的一些行: 现在我做: 而且我仍然看到带有换行符的文本。 问题答案: 只是踢,你也可以 用替换字符串中的所有换行符。

  • 问题内容: 我是一名工程专业的学生,​​我必须做大量的数值处理,绘图,模拟等工作。我目前使用的工具是Matlab。我在大多数作业中都用它在大学计算机中。但是,我想知道有哪些可用的免费选项。 我已经做过一些研究,许多人说python在各种情况下都可以替代matlab。我想知道如何用python做所有这些事情。我正在使用Mac,如何安装不同的python软件包。那些包是什么?这真的是可行的选择吗?使用

  • 问题内容: 我想为re.sub提供替代的替换模式。 假设我有两种搜索模式可供选择,如下所示: 而不是提供一个替换模式,我想以某种方式捕获匹配哪个搜索模式的替换项并提供替换模式。这可能吗?谢谢。 PS。这里的代码细节无关紧要,这是一个普遍的问题。 问题答案: 您可以将函数传递给。在该函数中,您可以根据捕获的组返回所需的值。一个简单的代码说明: 该函数检查匹配是否成功,并根据捕获的组返回替换字符串。如

  • 我得到了一个导入的文本块,但格式并不总是那么完美。之后我会尝试用jquery解决这个问题。所以我开始用 替换 : null null 但替换不起作用。最终的html应该如下所示:

  • 问题内容: 我尝试了多种方法将其编码为最终结果,其中最重要的字符是右撇号。 我想要一种使用某些Python内置函数达到最终结果的方法,在这些函数中,普通字符串和unicode字符串之间没有区别。 这是我用来检索字符串的代码: 结果是:缺少撇号。 另一种方法是: 结果是:在python中。 最后,如果我尝试: 结果是: 请不要替换函数,我想使用pythons编解码器库。同样不打印字符串,因为它被保存

  • 问题内容: 我想启用此文件中的所有apt存储库 使用sed,这是一种简单的方法,最优雅(“ pythonic”)的方法是什么? 问题答案: massedit.py(http://github.com/elmotec/massedit)为您做脚手架,只留下正则表达式来编写。它仍处于测试阶段,但我们正在寻找反馈。 将以diff格式显示差异(之前/之后)。 添加-w选项以将更改写入原始文件: 或者,您现