我有一些带百分号的unicode,我想改成反斜杠。我知道您需要一个额外的反斜杠作为转义序列,但是当我这样做时replace()
给了我两个反斜杠:
>>> s ="%20%u200F%u05D1%u05E8%u05DB%u05EA%u200F%20%u200F%u05D4%u05E8%u05D9%u05D7%u200F%20%u200F%u05D5%u05D1%u05E8%u05DB%u05EA%u200F%20%u200F%u05D4%u05D5%u05D3%u05D0%u05D4"
>>> s.replace("%","\")
File "<stdin>", line 1
s.replace("%","\")
SyntaxError: EOL while scanning string literal
>>> s.replace("%","\\")
'\\20\\u200F\\u05D1\\u05E8\\u05DB\\u05EA\\u200F\\20\\u200F\\u05D4\\u05E8\\u05D9\\u05D7\\u200F\\20\\u200F\\u05D5\\u05D1\\u05E8\\u05DB\\u05EA\\u200F\\20\\u200F\\u05D4\\u05D5\\u05D3\\u05D0\\u05D4'
'r'
限定符也不起作用。有什么想法吗?你知道吗
就像必须键入两个反斜杠才能输入一个反斜杠一样,Python在显示带引号的字符串时,也会显示两个反斜杠以指示它是一个文本反斜杠。
'\\x41'
是四个字符,'\x41'
是一个字符(相当于'A'
)。这是一个调试功能,因此您可以看到不可打印的字符,例如,并告诉差异。你知道吗这只是python调用字符串
__repr__
,因为您在REPL中,__repr__
转义\
字符,从而得到您看到的输出。你知道吗使用
print
,它将使用字符串__str__
,将获得正确的输出:也就是说,替换发生得很好。你知道吗
相关问题 更多 >
编程相关推荐