Pythonで正規表現


使い方

モジュールのimport

import re

正規表現オブジェクトの生成・マッチング

正規表現オブジェクトを生成してから、マッチングする方法

# 生成
cmpObj = re.compile(r'a.c')
# マッチング
ret = cmpObj.match('abc')

正規表現オブジェクトを生成しなくても、マッチングできる。
しかし、プログラム中で何度も同じ正規表現パターンを使用する場合は、正規表現オブジェクトを生成して使用するほうが効率的に処理できる。

# マッチング
ret = re.match(r'a.c', 'abc')

正規表現パターンに文字列がマッチしている場合には、match()の戻り値として、マッチオブジェクトを返却する。
マッチしなかった場合は、Noneが返却される。

match()は文字列の先頭がマッチするかを見ているため、以下のような場合はマッチしない

# これはマッチしない
ret = re.match(r'a.c', 'babc') 

文字列の先頭だけでなく、途中でもマッチしているかを確認する場合は、search()を使用する。

# これはマッチする
ret = re.search(r'a.c', 'babc')
# 正規表現オブジェクトを使用する場合
ret = cmpObj.search('babc')

マッチしたか確認する

if ret : 
    print(ret) # マッチした場合
else :
    print('not match') # マッチしなかった場合

注意点

  • パターンと検索する文字列はstrまたはbytesを使用するが、strbytesの混在はできない。
  • 正規表現パターンの文字列を指定するときには、raw文字列記法を使用する。(\を特殊文字として扱いたくないため)