Pythonで正規表現のリテラルとエスケープシーケンスを理解し活用する

この記事では、Pythonで正規表現のリテラルとエスケープシーケンスをどのように使用するのかを詳しく解説します。具体的なコード例とその解説、さらには応用例も含めて、この重要なトピックを掘り下げます。

目次

正規表現の基本

正規表現(Regular Expression)は、文字列の検索や置換を行う際に非常に強力なツールです。Pythonでは`re`モジュールを使って正規表現を扱います。

import re
pattern = r"\d{2,4}"
text = "The year is 2023."
result = re.findall(pattern, text)
print(result)

上記コードの解説

– `import re`: 正規表現を使用するために`re`モジュールをインポートします。
– `pattern = r”\d{2,4}”`: 正規表現のパターンを定義します。この例では2~4桁の数字を検索します。
– `text = “The year is 2023.”`: 検索対象のテキストです。
– `result = re.findall(pattern, text)`: `findall`関数を用いて、テキスト内のパターンにマッチするすべての部分を見つけます。
– `print(result)`: 結果を出力します。この場合、`[‘2023’]`となります。

リテラルとエスケープシーケンス

正規表現において、リテラルはそのままの文字として認識される一方で、エスケープシーケンスは特定の動作をする命令として認識されます。

リテラル

リテラルはそのままの文字として扱われる文字です。例えば、正規表現`apple`は、文字列から`apple`という単語をそのまま検索します。

# リテラルの例
pattern = r"apple"
text = "I have an apple."
result = re.findall(pattern, text)
print(result)

エスケープシーケンス

一方、エスケープシーケンスは`\`で始まる特別な文字列であり、特定の動作をします。例えば、`\d`は任意の数字を意味します。

# エスケープシーケンスの例
pattern = r"\d+"
text = "I have 2 apples and 3 oranges."
result = re.findall(pattern, text)
print(result)

応用例

電話番号の抽出

電話番号を含むテキストから電話番号を抽出する例です。

# 電話番号の抽出
pattern = r"\d{2,4}-\d{2,4}-\d{4}"
text = "My number is 03-1234-5678."
result = re.findall(pattern, text)
print(result)

URLの抽出

テキストからURLを抽出する例です。

# URLの抽出
pattern = r"https?://[\w/:%#\$&\?\(\)~\.=\+\-]+"
text = "Visit https://www.example.com for more info."
result = re.findall(pattern, text)
print(result)

まとめ

この記事では、Pythonでの正規表現のリテラルとエスケープシーケンスの基本について学びました。これらの理解は、テキスト処理において非常に有用です。具体的な応用例も紹介しましたので、ぜひ実践に活かしてください。

コメント

コメントする

目次