Pythonには標準ライブラリとしてreという正規表現操作のためのライブラリが用意されています。正規表現は文字列のパターンマッチングに利用され、テキスト処理やデータの前処理などで活躍しています。
正規表現の基礎
正規表現の基本的な記法には以下のものがあります。
.: 任意の1文字を表す。[]: 指定した文字集合のいずれか1文字にマッチする。例えば[abc]はa、b、cいずれか1文字にマッチする。|: 左右の式のどちらかにマッチする。(): グループ化を行う。*: 直前の文字が0回以上繰り返される。+: 直前の文字が1回以上繰り返される。?: 直前の文字が0回または1回現れる。^: 行頭にマッチする。$: 行末にマッチする。
reモジュールの使い方
reモジュールの主な関数には以下のものがあります。
re.search(pattern, string): 正規表現パターンpatternが文字列string中にマッチするかを検索する。re.match(pattern, string): 正規表現パターンpatternが文字列stringの先頭にマッチするかを検索する。re.findall(pattern, string): 正規表現パターンpatternにマッチする文字列を全て検索し、リストとして返す。re.sub(pattern, repl, string): 正規表現パターンpatternにマッチする文字列をreplで置換した文字列を返す。
実例
例えば、以下のようなテキストがあったとします。
Hello, my name is Alice. I am 25 years old.
このテキストから名前と年齢を抜き出すには、以下のような正規表現を用いることができます。
import re
text = "Hello, my name is Alice. I am 25 years old."
match = re.search(r"my name is (\w+)\.", text)
name = match.group(1)
match = re.search(r"I am (\d+) years old\.", text)
age = match.group(1)
print(name) # Alice
print(age) # 25
この例では、re.search関数を用いてmy name isの後に続く単語と、I amの
後に続く数字をそれぞれ抜き出しています。正規表現パターンには\wや\dという特殊な文字が使われており、それぞれ単語文字、数字にマッチすることを意味しています。
まとめ
Pythonにおいて正規表現を使うためには、reモジュールを利用することができます。正規表現の基本的な記法やreモジュールの関数を覚えて、テキスト処理などで効率的なコードを書くことができるようになりましょう。