Pythonでの正規表現の扱い
Pythonでは、パターン・マッチングを以下のいずれかの方法で行い、その結果をMatchObject
オブジェクトとして返す。
- パターンと文字列を指定して、reモジュールで定義された関数を実行する
- パターン文字列を正規表現オブジェクトとしてコンパイルしておき、そのメソッドで文字列を指定して実行する
reモジュール関数を使う方法
モジュール関数で実行する例は次の通り。実行結果はMatchObject
のオブジェクトとして返されるが、その文字列表現のspan
のところに4文字目~8-1文字目でヒットしたことが記録されている。
1 2 3 4 5 6 7 8 |
import re s = "The rain in Spain stays mainly in the plain." print(re.search(r"rain", s)) # <_sre.SRE_Match object; span=(4, 8), match='rain'> # マッチオブジェクトが返される |
パターン文字列を正規表現オブジェクトにコンパイルする方法
正規表現オブジェクトにコンパイルして検索する方法は次の通り。検索結果は先と同じMatchObject
オブジェクト。
1 2 3 4 5 6 7 8 9 10 |
import re s = "The rain in Spain stays mainly in the plain." ptnobj = re.compile(r"rain") print(ptnobj) print(ptnobj.search(s)) # re.compile('rain') # <_sre.SRE_Match object; span=(4, 8), match='rain'> |