search
LoginSignup
0

More than 3 years have passed since last update.

posted at

updated at

【自分用メモ】Pythonでの正規表現

正規表現とは

 文字列を1つのパターン化した文字列で表現する表記法のこと。
 正規表現を使用して、文字列をパターン化した文字列に置き換えることで、文字列の検索や置換えを行うことができる。

例題

import re

source = "Hatsune Miku"

result = re.match("Hatsu", source)
if result:
    print(result.group())    
#matchはオブジェクトを返す。
#オブジェクトから、マッチした部分を取り出す(str)には
#.group()関数を使う

image.png

ここでは、"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()) 

image.png

【参考・引用】
入門 Python 3(Bill Lubanovic (著), 斎藤 康毅 (監修), 長尾 高弘 (翻訳))
https://techacademy.jp/magazine/15635
https://qiita.com/wanwanland/items/ce272419dde2f95cdabc
https://qiita.com/sea_ship/items/7c8811b5cf37d700adc4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0