Pythonにおいての正規表現の使い方について簡単にまとめておく。
正規表現とは、特殊な文字や記号を使っていくつかの文字列を1つの文字列で表現する方法のこと。
正規表現で用いられる特殊文字については公式ドキュメントを参照。公式ドキュメント
正規表現の使い方
正規表現を使う方法には、以下の2パターンある。
① re
モジュールの関数を使用する。
② 正規表現オブジェクトのメソッドを使用する。
今回は②正規表現オブジェクトを使った方法を中心に扱う。
基本的な使い方の概要は以下となる。
1、 re
モジュールをインポート
2、 正規表現パターンから正規オブジェクトを作成
3、 正規表現オブジェクトのメソッドでマッチオブジェクトを作成
###正規表現オブジェクトの作成
正規表現オブジェクトはcompile()
を使用して作成できる。
pattern = re.compile(<正規表現パターン>)
###マッチオブジェクトの作成
マッチオブジェクトを返すメソッドの中から2つ紹介する。その他のメソッドについては公式ドキュメントを参照。公式ドキュメント
■ match()
文字列の先頭がパターンに一致するかチェックする。一致する文字がなければNone
を返す。
■ search()
対象文字列の中すべてに対して、パターンに一致するかチェックする。一致する文字がなければNone
を返す。
また、パターンに一致する全ての文字列を取得したい場合は、findall()
を使用する。
これは、マッチオブジェクトではなく、一致した文字列のリストが返されることに注意。
実装
例として、name
に英字以外が含まれていないかチェックする場合、以下のように書いてみた。
def validate_name(self, name):
pattern = re.compile("[a-zA-Z]")
if len(name) != len(re.findall(pattern, name)):
print("名前に英字以外が含まれています。")