当我为正则表达式执行相同的代码时,我在 python 2 和 3 中得到不同的输出。
假设这是我想要的位于网页某处的数据。
source = ['\x1e\x1e5.5.30-log\x1epcofiowa@localhost\x1epcofiowa_pci\x1e',
'\x1e\x1e5.5.30-log\x1epcofiowa@localhost\x1epcofiowa_pci\x1e',
'\x1e\x1e5.5.30-log\x1epcofiowa@localhost\x1epcofiowa_pci\x1e',
'\x1e\x1e5.5.30-log\x1epcofiowa@localhost\x1epcofiowa_pci\x1e']
因此,当我在 python 2.6 中运行以下代码时,它运行良好。我得到了像上面这样的精确输出。
match = re.findall("\x1e\x1e\S+",source)
但是当我在 python 3.3 中执行它时,例如:
match = re.findall("\x1e\x1e\S+", str(source))
我得到了 match 变量的输出,例如:
['\x1e\x1e5.5.30-log', '\x1e\x1e5.5.30-log', '\x1e\x1e5.5.30-log','\x1e\x1e5.5.30-log']
那么,你能告诉我为什么它没有在 python 3 中使用整个字符串吗?为什么\x1epcofiowa@localhost\x1epcofiowa_pci\x1e
每次都跳过?我想要像 python 2.6 这样的输出。
所以,我此刻一无所知。我在等待你的答复。谢谢。