1
2

More than 3 years have passed since last update.

Pythonで正規表現

Posted at

使い方

モジュールの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文字列記法を使用する。(\を特殊文字として扱いたくないため)
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2