【Python入門】正規表現で文字列操作(抽出・置換)

【Python入門】正規表現で文字列操作(抽出・置換)
スポンサーリンク
スポンサーリンク

Pythonにおける正規表現を使った文字列の操作について解説します。標準ライブラリの re モジュールを使用することで、パターンにマッチした文字列を抽出したり置換を行うことができます。

スポンサーリンク

ライブラリのインポート

reモジュールを使用するには、reをインポートします。

文字列の先頭から一致するものを検索(match)

文字列の先頭からパターンに一致するものを検索するにはmatch()メソッドを使用します。
matchでは文字列の先頭から検索しますので、文字列の途中に一致するものがあっても一致したとはみなされません。

 re.match(検索パターン文字列, 検索対象文字列)

結果はオブジェクトで返ってきます。span に一致した文字列の範囲(開始位置, 終了位置)が入っており、match に一致した文字列が入っています。

一致した文字列を取得するには group() メソッドを指定します。

パターンに一致するものが無い場合や、先頭からの文字列に一致しない場合は、None が返ります。

検索パターン文字列には、正規表現の特殊記号を使用することができます。

正規表現の主な特殊記号は以下になります。

開始^
終了$
改行以外の一字.
英字・小文字[a-z]
英字・小文字[A-Z]
数字[0-9]
英数字[a-zA-Z0-9]
スペースs
0回以上の繰り返し*
1回以上の繰り返し+
n回の繰り返し{n}
n回以上の繰り返し{n,}
n回以上m回以下の繰り返し{n,m}
省略可?
OR|
スペース以外の一字S

文字列からパターンに一致するものを検索(search)

先頭に限らず、文字列の途中でもパターンに一致するものを検索する場合は search() メソッドを使用します。

 re.search(検索パターン文字列, 検索対象文字列)

searchではパターンに一致するものが複数あった場合でも、返ってくる結果は最小に一致したものだけになります。

全ての結果を取得したい場合は findall() を使用します。

パターンに一致するもの全てを検索(findall)

文字列内でパターンに一致するもの全てを検索する場合は findall() メソッドを使用します。結果はリストになります。

 re.findall(検索パターン文字列, 検索対象文字列)

パターンに一致する文字で分割(split)

split() メソッドを使用することで、指定したパターンに一致する文字列で分割することが可能です。結果はリストになります。

re.split(検索パターン文字列, 分割対象文字列)

パターンに一致した文字の置換(sub)

sub() メソッドを使用することで、指定したパターンに一致する文字列を置換することができます。

re.sub(検索パターン文字列, 置換後の文字列, 検索対象文字列)

Pythonにおける正規表現を使った文字列の操作について解説しました。