Pythonでre! - 正規表現のグループまとめ
今更ですがPythonの正規表現モジュール「re」の個人的まとめです。
わざわざ自分で書かなくても他の方がまとめられてる内容なんですが、まぁ自分用メモって事で自分用にメモメモ。
■正規表現
正規表現はひとつの文字列で色んな文字を取ってこれる凄いヤツですね。
Pythonではreモジュールによって使用することができます。
■コンパイルしときましょ
ぷよぷよの会社ではありません。
re.searchメソッドによっていきなり正規表現を使用する事もできるのですが、コンパイルするとその後の処理が高速化するらしいので、とりあえずコンパイルしておきましょう。
コンパイルされたオブジェクトはsearchやmatchなどの正規表現実行メソッドをもっています。 ここから先の使用方法はre.searchやre.matchと同じですが、第一引数に正規表現はいらないのが違いです。
また、置換関数のsubやfindallなどほとんどの関数を使用する事ができます。
■グループ
さて、ここからが本題。 Pythonのreモジュールはグループ処理もサポートしています。グループ処理をするためには()で囲えばOK。
わざわざ自分で書かなくても他の方がまとめられてる内容なんですが、まぁ自分用メモって事で自分用にメモメモ。
■正規表現
正規表現はひとつの文字列で色んな文字を取ってこれる凄いヤツですね。
Pythonではreモジュールによって使用することができます。
■コンパイルしときましょ
ぷよぷよの会社ではありません。
re.searchメソッドによっていきなり正規表現を使用する事もできるのですが、コンパイルするとその後の処理が高速化するらしいので、とりあえずコンパイルしておきましょう。
# -*- coding:utf-8 -*- import re reobj = re.compile('.*') # Regex Objectが帰る
コンパイルされたオブジェクトはsearchやmatchなどの正規表現実行メソッドをもっています。 ここから先の使用方法はre.searchやre.matchと同じですが、第一引数に正規表現はいらないのが違いです。
# -*- coding:utf-8 -*- import re reobj = re.compile('[a-zA-Z]+') result = reobj.search('testfilename_map_v01.py') # 結果はtestfilenameが取れる何度も使用する場合、正規表現を何度も書かなくていいので非常に便利ですね。
また、置換関数のsubやfindallなどほとんどの関数を使用する事ができます。
■グループ
さて、ここからが本題。 Pythonのreモジュールはグループ処理もサポートしています。グループ処理をするためには()で囲えばOK。
# -*- coding:utf-8 -*- import re reobj = re.compile('([a-zA-Z]+)_map_(v\d+).py') result = reobj.search('testfilename_map_v01.py')
スポンサーサイト