Python正規表現reの使い方(match, search, sub, compile)
pythonで正規表現の使い方について解説します。
Pythonで正規表現を使うには?
pythonで正規表現を使う場合は、以下のreモジュールを使用します。
import re
ここでは、reの便利な使い方について、解説します。
正規表現にマッチした文字を探す(match, fullmatch, search, findall)
正規表現にマッチする文字を探す方法は以下の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のコンテナを作るやり方