okpy

Pythonエンジニア兼テックリーダーが、多くのプロジェクトとチーム運営から得た実践的な知識を共有するブログです。

文字列操作の強力なツール:Pythonのreライブラリ

Python re ライブラリ完全ガイド

Python 標準ライブラリの re は、正規表現(Regular Expressions)を扱うための強力なツールです。文字列の検索、置換、抽出、パターンマッチングなど、テキスト処理を行う際に非常に役立ちます。本記事では、re ライブラリの基本概念から実践的な使用例までを詳しく解説します。

1. re ライブラリの概要

  • re は、正規表現を使用して文字列を処理するための標準ライブラリです。
  • テキストデータの検索、抽出、置換、分割などが可能です。
  • Webスクレイピング、ログ解析、データクレンジングなど幅広く活用されます。

インストール方法

rePython の標準ライブラリなので、追加のインストールは不要です。

import re

2. 主な機能と使用例

(1) 文字列の検索(re.search

import re

text = "Pythonで正規表現を学ぶ"
pattern = "正規表現"

match = re.search(pattern, text)
if match:
    print("一致する文字列を発見:", match.group())

使用例: 特定のキーワードを含むログファイルやテキストデータを検索する際に利用できます。


(2) 文字列の一致判定(re.match

import re

text = "Python123"
pattern = r"^Python[0-9]+$"

if re.match(pattern, text):
    print("パターンに一致しました!")
else:
    print("一致しませんでした。")

使用例: 特定のフォーマットに従った入力(例: ユーザー名、パスワード、日付形式など)をチェックする際に使用できます。


(3) すべての一致を取得(re.findall

import re

text = "メール: user1@example.com, user2@example.net"
pattern = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"

emails = re.findall(pattern, text)
print("見つかったメールアドレス:", emails)

使用例: メールアドレス、電話番号、URL などのパターンを抽出する際に利用できます。


(4) 文字列の置換(re.sub

import re

text = "Hello 123, this is a test 456."
pattern = r"\d+"

# 数字を * に置換
new_text = re.sub(pattern, "*", text)
print("置換後のテキスト:", new_text)

使用例: 機密情報(例: 電話番号やクレジットカード番号)をマスキングする際に活用できます。


(5) 文字列の分割(re.split

import re

text = "apple, banana; cherry|grape"
pattern = r"[,;|]"

words = re.split(pattern, text)
print("分割結果:", words)

使用例: 異なる区切り文字を含むテキストデータを分割する際に便利です。


3. re正規表現パターン

パターン 説明
. 任意の1文字
^ 行の先頭
$ 行の末尾
\d 数字(0-9)
\w 英数字(a-z, A-Z, 0-9, _)
\s 空白文字
* 0回以上の繰り返し
+ 1回以上の繰り返し
{n,m} n回以上m回以下の繰り返し

まとめ

Pythonre ライブラリは、テキスト処理やデータ抽出を効率的に行うための強力なツールです。ログ解析、データクレンジング、Webスクレイピングなどの場面で役立ちます。正規表現の活用をマスターして、より高度なテキスト処理を実現しましょう! 🚀