我想替换一个字符串中的所有/ x **。例如,像这样的字符串:
>>> t
'\n\xd6#\n\xdf\x02\n\x08abstract\x12\xd2\x02\n'
我知道re.sub可以处理原始文本:
>>> re.sub(r'\\x[0-9A-Fa-f]{2}', '', r'\n\xd6#\n\xdf\x02\n\x08abstract\x12\xd2\x02\n')
'\\n#\\n\\nabstract\\n'
但是,如果我把它放在那里,那么它将返回原始文本而不替换:
>>> re.sub(r'\\x[0-9A-Fa-f]{2}', '', t)
'\n\xd6#\n\xdf\x02\n\x08abstract\x12\xd2\x02\n'
我认为这可能是因为这里不是原始文本,我尝试将其转换为原始文本(如果我错了,请纠正我)
>>> t.replace("\\","\\\\")
'\n\xd6#\n\xdf\x02\n\x08abstract\x12\xd2\x02\n'
然而,你可以看到它不会返回这样的东西:
>>> r'\n\xd6#\n\xdf\x02\n\x08abstract\x12\xd2\x02\n'
'\\n\\xd6#\\n\\xdf\\x02\\n\\x08abstract\\x12\\xd2\\x02\\n'
因为我没有正确传递str,所以sub无法替换? (实际上我确实看到它与原始str一起工作)
谢谢!