如何在Python中用单反斜杠替换双反斜杠

时间:2018-07-17 08:29:40

标签: python python-3.x

buf= 'b"\\\x00\\\x00\\\x1a\\\x00/H\\\x00\\\x00\\\xf8f\\\x14'""'

我需要:

buf= 'b"\x00\x00\x1a\x00/H\x00\x00\xf8f \x14'""'

我尝试过:buf=buf.replace("\\","\") 但是我遇到了错误:SyntaxError: EOL while scanning string literal

3 个答案:

答案 0 :(得分:0)

请确保用另一个反斜杠转义每个反斜杠:

buf=buf.replace("\\\\","\\")

或者,您可以使用原始字符串:

buf=buf.replace(r"\\",r"\")

答案 1 :(得分:0)

您必须使用\转义\。因此,替换\变成\\,替换\\变成\\\\

buf= 'b"\\x00\\x00\\x1a\\x00/H\\x00\\x00\\xf8f\\x14'""

buf=buf.replace("\\\\","\\") # give b"\x00\x00\x1a\x00/H\x00\x00\xf8f\x14

答案 2 :(得分:0)

在您的代码中

buf=buf.replace("\\","\")

第一个反斜杠将被视为转义序列,并将读取下一个具有特殊含义的字符。因此,在此阶段,“ \”将跳过第二个“,因此它将提高

SyntaxError:扫描字符串文字时会停工

将代码替换为

buf=buf.replace(r"\\",r"\")

此处“ r”用于完全读取字符串,它将跳过/避免转义序列