私はLionとPython 2.7.1を実行しているMacを持っています。私はreモジュールから非常に奇妙なことに気づいています。私は次の行を実行する場合:Python 2.7.1のreモジュールでre.split関数とre.DOTALLフラグを持つバグ
print re.split(r'\s*,\s*', 'a, b,\nc, d, e, f, g, h, i, j, k,\nl, m, n, o, p, q, r')
を私はこの結果を得る:
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r']
しかし、私はこのようなre.DOTALLフラグとそれを実行する場合:
print re.split(r'\s*,\s*', 'a, b,\nc, d, e, f, g, h, i, j, k,\nl, m, n, o, p, q, r', re.DOTALL)
それから私は、取得しますこの結果:
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q, r']
「q、rはc 2つではなく1つのマッチとして賞賛される。
どうしてですか?私は私のパターンでドットを使用していない場合、なぜre.DOTALLフラグが違いを生むのかわかりません。私は何か間違っているのですか、それともバグがありますか?
私はPythonのほぼすべてのバージョンで同じ結果を得ます。これは文書化されているように機能します。ドキュメントを読んで、期待を調整する。 –