[Python]電話番号をエスケープ !正規表現で便利なテクニック解説

Pythonにおける正規表現の基本

Pythonでは、正規表現を扱うためにreモジュールを使用します。

正規表現は文字列のパターンを表す方法で、文字列の検索や置換、抽出などに利用されます。

正規表現は特殊文字やメタ文字を使用して表現されます。

import re
text = "This is a sample text."
pattern = "sample"
result = re.search(pattern, text)
print(result.group())

上記のコードでは、reモジュールのsearch関数を使用して、text変数の中からpattern変数に指定されたパターンを検索しています。

結果として、”sample”という文字列が返されます。

Pythonでの電話番号の正規表現について

電話番号を正規表現で表現する場合、以下のように表現することができます。

import re
phone_number = "080-1234-5678"
pattern = r"\d{2,4}-\d{2,4}-\d{4}"
result = re.match(pattern, phone_number)
print(result.group())

上記のコードでは、電話番号を表す文字列をphone_number変数に格納し、パターンを表す文字列をpattern変数に格納しています。

パターンでは、\dは数字を表し、{2,4}は2桁から4桁の数字を表します。

また、-はハイフンを表します。

結果として、”080-1234-5678″という文字列が返されます。

電話番号を正規表現で抽出する方法

あるテキスト中から電話番号を正規表現で抽出する場合、以下のように表現することができます。

import re
text = "私の電話番号は080-1234-5678です。"
pattern = r"\d{2,4}-\d{2,4}-\d{4}"
result = re.search(pattern, text)
print(result.group())

上記のコードでは、text変数の中からパターンにマッチする文字列を検索しています。

結果として、”080-1234-5678″という文字列が返されます。

Pythonのエスケープシーケンスの解説

Pythonでは、エスケープシーケンスを使用することで、特殊文字を表現することができます。

代表的なエスケープシーケンスには、以下のものがあります。

  • \n: 改行
  • \t: タブ
  • \’: シングルクォート
  • \” : ダブルクォート
  • \\: バックスラッシュ

例えば、以下のように表現することができます。

print("Hello\nWorld!")
print("I\'m a programmer.")

上記のコードでは、\nを使用して改行を表し、\’を使用してシングルクォートを表しています。

結果として、以下のように出力されます。

Hello
World!
I'm a programmer.

正規表現を使った電話番号のエスケープ処理

電話番号をエスケープする際には、正規表現の特殊文字をエスケープする必要があります。

以下のように、reモジュールのescape関数を使用することで、正規表現の特殊文字をエスケープすることができます。

import re
phone_number = "(080)1234-5678"
pattern = re.escape(phone_number)
result = re.match(pattern, phone_number)
print(result.group())

上記のコードでは、電話番号を表す文字列をphone_number変数に格納し、re.escape関数を使用してパターンを表す文字列を生成しています。

結果として、”(080)1234-5678″という文字列が返されます。

まとめ

Pythonの正規表現を使用することで、電話番号の抽出やエスケープ処理を簡単に行うことができます。

正規表現の基本を押さえて、エスケープ処理を活用することで、柔軟な処理が可能となります。