正規表現とは
文字列を1つのパターン化した文字列で表現する表記法のこと。
正規表現を使用して、文字列をパターン化した文字列に置き換えることで、文字列の検索や置換えを行うことができる。
例題
import re
source = "Hatsune Miku"
result = re.match("Hatsu", source)
if result:
print(result.group())
# matchはオブジェクトを返す。
# オブジェクトから、マッチした部分を取り出す(str)には
# .group()関数を使う
ここでは、"Hatsu"がパターン、"Hatsune Miku"がソース文字列で、match()は、ソースの先頭がパターンになっているかどうかをチェックする。
パターンとソースを比較する方法はmatchだけではない。他にも次のようなメソッドを使える。
・search()は、最初のマッチを返す。(ある場合)
・findall()は、重なり合わないすべてのマッチのリストを返す。(ある場合)
・split()は、パターンにマッチしたところでソースを分割し、部分文字列のリストを返す。
・sub()は、置換文字列引数をとり、ソースのうち、パターンにマッチするすべての部分を置換文字列に置き換える。
人名からMiss.を抽出してみた
source = "Graham, Miss. Margaret Edith"
title_search = re.search(' ([A-Za-z]+)\.', source)
# ' ([A-Za-z]+)\.'は、英文字([A-Za-z])1文字以上でかつ .が語尾につくものを表す。
if title_search:
print(title_search.group())
【参考・引用】
・入門 Python 3(Bill Lubanovic (著), 斎藤 康毅 (監修), 長尾 高弘 (翻訳))
・https://techacademy.jp/magazine/15635
・https://qiita.com/wanwanland/items/ce272419dde2f95cdabc
・https://qiita.com/sea_ship/items/7c8811b5cf37d700adc4