7

我注意到 Python 的 Regex 库中有一些奇怪的行为,我不确定我是否做错了什么。

如果我使用re.sub(), with对其运行正则表达式re.MULTILINE。它似乎只替换了前几次出现。如果我关闭re.MULTILINE、使用re.subn(..., count = 0, flags = re.MULTILINE)或编译正则表达式,它会替换所有出现的re.compile(..., re.MULTILINE).

我在 Ubuntu 12.04 上运行 Python 2.7。

我在以下位置发布了一个随机示例:

  • Pastebin.com - 终端输出
  • codepad - 脚本,确认行为(除了 re.subn(),它在 2.5 上有所不同)

有人可以在他们的机器上确认/否认这种行为吗?

编辑:意识到我应该继续在 Python 错误跟踪器上发布这个。编辑 2:报告的问题:http: //bugs.python.org/msg168909

4

1 回答 1

27

利用

re.sub(pattern, replace, text, flags=re.MULTILINE) 

代替

re.sub(pattern, replace, text, re.MULTILINE) 

这相当于

re.sub(pattern, replace, text, count=re.MULTILINE)

这是您的代码中的一个错误。

re.sub()

于 2012-08-23T00:01:48.180 回答