Pythonでの正規表現の利用方法

広告

いろいろなプログラミング言語で正規表現を利用することができますが、 Python から正規表現を利用するにはどのように行うのかについて簡単に解説します。より詳細な利用方法についてはこの後のページをそれぞれ参照されてください。

パターンを定義する

正規表現とは、文章の中から少し複雑な条件で目的の文字列を探したり、利用者から入力された値が指定した文字の種類やフォーマットに一致する値になっているかどうかを調べたい場合に便利な機能です。例えば対象の文章に「ABCD」という文字列が含まれているかを調べるのではなく、「A」で始まり「D」で終わる 4 文字の文字列が含まれているかを調べることができます。

この文章の中でどのような文字列を探すのかを定義したものがパターンです。

パターンは文字列やあらかじめ決められている特別な記述方法を使って定義します。例えば「a」で始まり「e」で終わる 5 文字の文字列を表すパターンは「a...e」のように定義できます。正規表現ではドット(.)は任意の 1 文字を表します。

実際に Python でパターンを定義するには、 re モジュールに含まれる compile 関数を使って次のように記述します。

import re

pattern = re.compile(r'a...e')

compile 関数の引数にはパターンを表す文字列を指定します。通常の文字列でもいいのですが、正規表現ではバックスラッシュ( Windows では円記号)をよく使用するため、バックスラッシュを特殊な文字ではなく文字として扱うことができる raw 文字列を使用します。結果として Pattern クラスのオブジェクトを取得することができます。

文章とパターンがマッチするかどうかを調べる

次に対象となる文字列がパターンとマッチするかどうかを調べます。なおマッチするというのは、対象の文字列の中にパターンと一致する文字列が含まれていた場合のことを正規表現ではマッチすると呼びます。

対象の文字列がパターンとマッチするかどうかを調べるには、 Pattern クラスで用意されている search メソッドを使います。

import re

target = 'I like apples and oranges.'

ptn = re.compile(r'a...e')
result = ptn.search(target)

マッチした場合は Match クラスのオブジェクトを返し、マッチしなかった場合は None が返されます。

それでは対象の文章の中のどの部分にマッチしたのかを取得してみます。

import re

target = 'I like apples and oranges.'

ptn = re.compile(r'a...e')
result = ptn.search(target)
if result :
  print(result.group())
--> apple

パターンとして定義した「a」ではじまり「e」で終わる 5 文字のパターンは、対象である文章の中の「apple」の部分にマッチしたことがわかります。

正規表現を利用するにはパターンを具体的にどのように記述するか、そしてパターンが実際にどんなテキストにマッチするのかを知る必要があります。次のページ以降で順番に解説していきます。

-- --

Python から正規表現を利用するにはどのように行うのかについて簡単に解説しました。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。