Python正規表現reの使い方(match, search, sub, compile)

python プログラミング

pythonで正規表現の使い方について解説します。

Pythonで正規表現を使うには?

pythonで正規表現を使う場合は、以下のreモジュールを使用します。

import re

ここでは、reの便利な使い方について、解説します。

正規表現にマッチする文字を探す方法は以下の4つのメソッドを使います。

  • 先頭から一致する
    result = re.match(‘正規表現’, 文字列)
  • 全て一致する
    result = re.fullmatch(‘正規表現’, 文字列)
  • 部分一致する
    result = re.search(‘正規表現’, 文字列)
  • 複数の部分一致
    result = re.findall(‘正規表現’, 文字列)

例)メールアドレスを検索

import re

result = re.search(r'([a-zA-Z]+)@([a-zA-Z\.]+)', 'sasaking@gmail.com')

print(result)
# <re.Match object; span=(0, 18), match='sasaking@gmail.com'>

戻り値は、Matchオブジェクトです。

以下のメソッドを用いることで、一致した文字列を取得します。

  • group(): 一致した部分の文字列を出力
  • groups(): 正規表現で記載した場所をタプル型で出力

例) group() / groups()を使ってそれぞれ出力

print(result.group())
# sasaking@gmail.com

print(result.groups())
# ('sasaking', 'gmail.com')

正規表現にマッチした文字を削除するor置き換える(sub)

こちらは、正規表現にマッチした文字列を置き換えるx(replace)することができる便利なメソッドです。

  • 文字を削除or変更する
    result = re.sub(‘正規表現’, 置き換える文字列, 対象文字列)

例)メールアドレスを「メールアドレスです。」に置き換える。

import re

result = re.sub(r'([a-zA-Z]+)@([a-zA-Z\.]+)', 'メールアドレスです。','sasaking@gmail.com')

print(result)
# メールアドレスです。

もし、削除したい場合は、置き換える文字列”(空文字)を指定することで削除ができます。

正規表現を事前にコンパイル(compile)

1つの正規表現を使って複数のメソッドで動かしたい場合は、compileメソッドを使うと便利です。

  • パターンをコンパイル
    pattern = re.compile(r'([a-zA-Z]+)@([a-zA-Z.]+)’)

これをすることで、パターンをコンパイルした状態になるので、上記のメソッド(match, search, subなど..)の第1引数が不要になります。

例)compileした場合のsearchメソッドの使い方

import re

pattern = re.compile(r'([a-zA-Z]+)@([a-zA-Z\.]+)') 
result = pattern.search('sasaking@gmail.com')

print(result.group())
# sasaking@gmail.com

戻り値は、上記のメソッド同様Matchオブジェクトで返ってきます。

以上、pythonでの正規表現の使い方でした。

人気記事 Springbootの環境構築から Hello worldまで on Mac

人気記事 DockerでMySQLとphpAdminのコンテナを作るやり方

人気記事 ITブラック企業の求人の見分け方!7つのポイント