Pythonには標準ライブラリとしてreという正規表現操作のためのライブラリが用意されています。正規表現は文字列のパターンマッチングに利用され、テキスト処理やデータの前処理などで活躍しています。

正規表現の基礎

正規表現の基本的な記法には以下のものがあります。

  • .: 任意の1文字を表す。
  • []: 指定した文字集合のいずれか1文字にマッチする。例えば[abc]abcいずれか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モジュールの関数を覚えて、テキスト処理などで効率的なコードを書くことができるようになりましょう。