【Python学習用(初学者向け)】re regex cheatsheet 基本と解説

pythonPython

本日は、

reモジュール、regexの基本 cheatsheet について

の記事となります

reモジュールの簡単な解説と、

Email、電話番号、HPアドレスを抜き出す

snippetsをご紹介します

はじめに

使用するテキスト(コピペ可)

reモジュールをimportした後、使用するテキストを作成します

import re

text_for_regex = '''
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
1234567890

http://google.com/
ITCブログ | 今の自分にチャレンジする
新たな可能性にチャレンジしたいですか?当ブログでは、未経験の方がITへチャレンジするための情報を提供します。主には「Webアプリ開発」、新技術である「Web3.0」、「ブログ」についての記事となります。全て実体験に基づいた情報ですので、「これから新たなことを学びたい!」という方はぜひご覧いただければと思います。
Yahoo! JAPAN
あなたの毎日をアップデートする情報ポータル。検索、ニュース、天気、スポーツ、メール、ショッピング、オークションなど便利なサービスを展開しています。
info@itc.tokyo 123-4567 1234567890123 090-1234-5678 090.9876.5432 this is the text for regex tutorial La LaLa '''text_for_regex = ''' abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890
Google
ITCブログ | 今の自分にチャレンジする
新たな可能性にチャレンジしたいですか?当ブログでは、未経験の方がITへチャレンジするための情報を提供します。主には「Webアプリ開発」、新技術である「Web3.0」、「ブログ」についての記事となります。全て実体験に基づいた情報ですので、「これから新たなことを学びたい!」という方はぜひご覧いただければと思います。
Yahoo! JAPAN
あなたの毎日をアップデートする情報ポータル。検索、ニュース、天気、スポーツ、メール、ショッピング、オークションなど便利なサービスを展開しています。
info@itc.tokyo yulipython@gmail.com test@itc.tokyo info@funpython.site 123-4567 1234567890123 090-1234-5678 090.9876.5432 this is the text for regex tutorial La LaLa '''import re text_for_regex = ''' abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890
Google
ITCブログ | 今の自分にチャレンジする
新たな可能性にチャレンジしたいですか?当ブログでは、未経験の方がITへチャレンジするための情報を提供します。主には「Webアプリ開発」、新技術である「Web3.0」、「ブログ」についての記事となります。全て実体験に基づいた情報ですので、「これから新たなことを学びたい!」という方はぜひご覧いただければと思います。
Yahoo! JAPAN
あなたの毎日をアップデートする情報ポータル。検索、ニュース、天気、スポーツ、メール、ショッピング、オークションなど便利なサービスを展開しています。
info@itc.tokyo 123-4567 1234567890123 090-1234-5678 090.9876.5432 this is the text for regex tutorial La LaLa '''

パターンテキストは「r””」で囲う

Pythonシェルで、

$ print(“\tTab”)

と打ってみよう!※\はバックスラッシュのことです

【出力結果】

    Tab

タブでスペースが空いた「Tab」が表示されました

このままでregex処理を行ってしまうと正しいパターンが作れませんので、

クォートの前に「r」を入れてパターンを作るようにしましょう!

全体の構成

Python regexはこのようにして構成され、アウトプットされる

matches = <探すパターン>.finditer(<元となるテキスト>)
for match in matches:
    print(match)

パターンを作る

pattern = re.compile(r”<パターン>”)

となるので、

pattern = re.compile(r”abc”)

とすると

matches = pattern.finditer(text_for_regex)
for match in matches:
    print(match)

【出力結果】

<_sre.SRE_Match object; span=(1, 4), match='abc'>

abcにマッチしたオブジェクトがprintされます

Emailアドレスを抽出する

pattern = re.compile(r"[a-zA-Z]+[a-zA-Z0-9-]*@[a-zA-Z0-9]+.(com|jp|tokyo|co.jp|site)")

【出力結果】

<_sre.SRE_Match object; span=(128, 142), match='info@itc.tokyo'> 
<_sre.SRE_Match object; span=(143, 163), match='yulipython@gmail.com'> <_sre.SRE_Match object; span=(164, 178), match='test@itc.tokyo'> 
<_sre.SRE_Match object; span=(179, 198), match='info@funpython.site'>

電話番号を抽出する

pattern = re.compile(r"\d{3}[-.]\d{4}[-.]\d{4}")

【出力結果】

<_sre.SRE_Match object; span=(127, 140), match='090-1234-5678'>
<_sre.SRE_Match object; span=(141, 154), match='090.9876.5432'>

URLを抽出する

pattern = re.compile(r"https?://(www.)?[a-zA-Z]+[a-zA-Z0-9-].(com|jp|edu|gov|tokyo)")

【出力結果】

<_sre.SRE_Match object; span=(67, 84), match='http://google.com'>
<_sre.SRE_Match object; span=(86, 103), match='https://itc.tokyo'>
<_sre.SRE_Match object; span=(105, 125), match='https://www.yahoo.jp'>

まとめ

細かい詳細については、

公式ドキュメント

でみられると良いかとおもいます

この記事では実戦で使えると思われるsnippetsを中心に紹介させて頂きました!

今後も随時更新し、より役立つものになるようにしていこうと思います

本日もありがとうございました!!!

タイトルとURLをコピーしました