首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python将\\替换为\

Python将\\替换为\
EN

Stack Overflow用户
提问于 2011-03-03 21:34:16
回答 9查看 149K关注 0票数 43

所以我似乎想不出.我有一个字符串说,"a\\nb"和我想把它变成"a\nb"。我试过以下所有的方法,但似乎没有一种有效;

代码语言:javascript
运行
复制
>>> 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'

我真的不明白为什么最后一个能起作用,因为这个很好:

代码语言:javascript
运行
复制
>>> a.replace("\\","%")
'a%nb'

这里有什么东西我遗漏了吗?

编辑我知道\是转义字符。我在这里试图做的是把所有的\\n\\t等转换成\n\t等,并替换它,看起来并不像我想象的那样工作。

代码语言:javascript
运行
复制
>>> a = "a\\nb"
>>> b = "a\nb"
>>> print a
a\nb
>>> print b
a
b
>>> a.replace("\\","\\")
'a\\nb'
>>> a.replace("\\\\","\\")
'a\\nb'

我想让字符串a看起来像字符串b,但是替换不是像我想的那样替换斜杠。

EN

Stack Overflow用户

发布于 2011-03-03 21:39:03

这是因为,即使在“原始”字符串中(=在开始引号之前带有r的字符串),未转义转义字符也不能是字符串中的最后一个字符。相反,这应该是可行的:

代码语言:javascript
运行
复制
'\\ '[0]
票数 1
EN
查看全部 9 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5186839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档