この記事では、Pythonで正規表現を使った文字列の置換について詳しく解説します。具体的なコード例とその解説、さらに応用例を2つ紹介します。
はじめに:正規表現とは?
正規表現(Regular Expression)とは、文字列の検索や置換を行うためのパターン言語です。Pythonでは`re`モジュールを用いて正規表現の操作が可能です。
基本的な文字列置換の仕方
Pythonの`re`モジュールの`sub`関数を用いて、基本的な文字列の置換を行いましょう。
import re
# 正規表現パターンと置換文字を定義
pattern = r"apple"
replacement = "orange"
# 対象の文字列
text = "I have an apple."
# 置換
result = re.sub(pattern, replacement, text)
print(result) # 出力: "I have an orange."
コードの解説
– `import re`: `re`モジュールをインポートします。
– `pattern = r”apple”`: 置換する対象の正規表現パターンを定義します。
– `replacement = “orange”`: 置換後の文字列を定義します。
– `re.sub(pattern, replacement, text)`: `text`内の`pattern`に一致する部分を`replacement`で置換します。
正規表現を使った高度な置換
# 複数の空白を一つに置換
text = "This is a text."
result = re.sub(r"\s+", " ", text)
print(result) # 出力: "This is a text."
コードの解説
– `r”\s+”`: 一つ以上の空白(スペース、タブ、改行など)にマッチします。
– `re.sub(r”\s+”, ” “, text)`: `text`内の一つ以上の連続する空白を一つのスペースに置換します。
応用例1:日付形式の置換
# YYYY/MM/DD を YYYY-MM-DD に置換
text = "Today is 2023/10/17."
result = re.sub(r"(\d{4})/(\d{2})/(\d{2})", r"\1-\2-\3", text)
print(result) # 出力: "Today is 2023-10-17."
コードの解説
– `r”(\d{4})/(\d{2})/(\d{2})”`: 年、月、日にマッチする正規表現を定義します。
– `r”\1-\2-\3″`: それぞれのキャプチャグループをダッシュでつなげます。
応用例2:メールアドレスのドメイン変更
# メールアドレスのドメインを変更
text = "my.email@example.com"
result = re.sub(r"@example\.com", "@newdomain.com", text)
print(result) # 出力: "my.email@newdomain.com"
コードの解説
– `r”@example\.com”`: `@example.com`にマッチします。`.`はエスケープしています。
– `r”@newdomain.com”`: 新しいドメイン名に置換します。
まとめ
この記事で紹介したPythonの`re`モジュールと`sub`関数を用いることで、基本的な文字列置換から高度な置換まで容易に行えます。日常のプログラミング作業で非常に便利なスキルであるため、ぜひ習得してください。
コメント