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