前提・実現したいこと
python2のコードを3でも使えるようにしているのですが、正規表現の下記の変更点がドキュメントを読んでも理解できません。
.*は文字列全体にマッチし、それをabという文字列に置き換えるので、挙動としては3.6以下のものが正しいと思っていますが、
3.7以上の挙動はバグなのでしょうか?
発生している問題・エラーメッセージ
python3.6未満では下記コードを実行すると
ab
と表示されます。3.7では
abab
と置き換え文字列が2回繰り返された物が表示されてしまいます。
該当のソースコード
python
1 2import re 3 4s = “some text” 5r = re.compile(r”.*”) 6print(r.sub(“ab”, s)) 7
試したこと
ちなみに.+に変えるとababのような繰り返しは無くなり、ちゃんとabのみ表示されます。
補足情報(FW/ツールのバージョンなど)
テスト環境
python2.7、3.6、3.9
回答1件
あなたの回答
tips
プレビュー