回复sub()不返回理想输出(python2)

2024-09-28 22:27:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在一个字符串中替换所有的/x**。例如,这样的字符串:

>>> t '\n\xd6#\n\xdf\x02\n\x08abstract\x12\xd2\x02\n'

我知道回复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'

但是,如果我把t放在那里,它将返回原始文本而不替换:

>>> 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一起工作)

谢谢!你知道吗


Tags: 字符串文本re内容replace例子faxdf