7

Pythonの正規表現ライブラリで奇妙な動作に気づいていますが、何か間違ったことをしているのかわかりません。

を使用して正規表現を実行するre.sub()と、re.MULTILINE。それは最初のいくつかの出来事を置き換えるだけのようです。をオフにするかre.MULTILINE、使用するre.subn(..., count = 0, flags = re.MULTILINE)か、またはを使用して正規表現をコンパイルすると、すべての出現箇所が置き換えられますre.compile(..., re.MULTILINE)

Ubuntu12.04でPython2.7を実行しています。

私はランダムな例を投稿しました:

  • Pastebin.com-ターミナルからの出力
  • codepad-スクリプト、動作を確認します(2.5では異なるre.subn()を除く)

誰かが自分のマシンでこの動作を確認/拒否できますか?

編集:私は先に進んで、これを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 に答える