re.sub()不返回理想输出(python2)

时间:2017-12-03 03:53:36

标签: python regex

我想替换一个字符串中的所有/ 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一起工作)

谢谢!

0 个答案:

没有答案