今回はPythonでグループを後から参照する後方参照を、reモジュールを使う方法で紹介します。
\reモジュールの基本/
後方参照に使用する正規表現
Pythonに後方参照をさせるには、reモジュールのsub関数を使用します。
reモジュールとは、正規表現を扱う為にPythonに用意されている標準モジュール。正規表現を使うと任意のパターン文字列を使うことが出来て便利だよ!詳しくは☞こちら
グループ化した正規表現にマッチした範囲は、¥番号で参照出来ます。
これを後方参照と呼びます。
この場合¥がPythonによってエスケープされないようにraw文字列記法を使用する必要があります。
(¥は\バックスラッシュと同じ意味します。)
関数:sub(pattern, repl ,string ,count=0, flags=0)
pattern:パターン repl:置換後の文字列 string:検索対象の文字列
count:置換が実行される最大回数。省略もしくは0ですべて実行
flags:検索条件を設定するフラグ
説明:stringに対してpatternで指定したパターンに合う部分をreplで指定した文字列で置換する
文章にすると少し分かりにくいと思うので、実行例でみていきましょう。
Pythonで実際に後方置換をする
実際にsub関数のreplで後方参照を使用して「日:月:年」のリストを「月:日:年」に変更してみましょう。
import re
date1=[“10日:8月:2020年”,”1日:8月:2020年”,”5日:8月:2020年”]
date2=[]
for date in date1:
date2.append(re.sub(r”(\w+):(\w+):(\w+)”,r”\2:\1:\3″,date))
print(date2)
結果:[‘8月:10日:2020年’, ‘8月:1日:2020年’, ‘8月:5日:2020年’]
(re.sub(r”(\w+):(\w+):(\w+)”,r”\2:\1:\3″,date)の\2:\1:\3順番を入れ替えると、表示させる順番を変えられます。
Pythonで後方参照 まとめ
少し難しい内容でしたが理解できましたか?
難しいと感じたあなたは、前回の内容をぜひ振り返ってみてくださいね。
今回の内容のヒントが得られるはずです。
☞reモジュールでパターンにマッチする部分を置換しよう!
今回の内容をまとめておきます。
- reモジュールのインポート
コードの初めに import re を記載 - 後方置換をする
sub(pattern, repl ,string ,count=0, flags=0)
詳しい引数の説明は上記参照
\次回の内容はこちら/
コメント