如何在Python字符串中取消转义特殊字符?

3

spam\/eggsspam/eggs

# This isn't working...
str = "spam\/eggs"
s = bytes(str, "utf-8").decode("unicode_escape")

print(s)
>>> spam\/eggs

# How to get "spam/eggs"

请检查"spam/eggs".encode().decode()是否回答了您的问题? - Chiheb Nexus
bytes("spam/eggs", "utf-8").decode("unicode_escape") == "spam/eggs" - erip
3个回答

2
在Python中,你不能直接使用反斜杠 '\',因为Python将会认为你想要在其后添加特殊字符,如 '\t'、'\n' 等等。所以你需要在字符串中使用两个连续的反斜杠: string = 'spam\\/eggs' 我认为这不是最高效的方法,但你也可以这样做:
strs = 'spam\/eggs'
print(strs)
strs = strs.replace('\\','')
print(strs)

我只是通过用一个空字符串替换它来删除了\

1
你可以使用正则表达式。
要删除特定的特殊字符 \,必须在正则表达式中指定 \。
import re
myString = "spam\/eggs"
str2 = re.sub(r'\\', "", myString) # remove this character '\'
print(str2)
# spam/eggs

通用目的(删除特定字符):
import re
myString = "sp&a+m\/eg*gs"
str2 = re.sub(r'[\\&+*]', "", myString) # to remove what you want into the brackets
print(str2)
# spam/eggs

谢谢。我认为这个更准确 str2 = re.sub(r'\\/', "/", myString) 适用于通用目的。 - wongz

0
str = "spam/eggs"
str2 = bytes(str, "utf-8").decode("unicode_escape")
print(str2)

顺便说一句:您应该更加仔细地将代码放在问题中;您先是称一个变量为str,然后又称其为myString,第二个变量则先是str2,然后变成了str1


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接