始める無料で始める

電話番号のフィルタリング

次は、携帯電話番号を検索するスクリプトを書きます。指定した条件に合う番号だけを、番号のリストから抽出します。

リスト中の電話番号の構造は次のとおりです。

  • 市外局番(任意):数字3桁
  • プレフィックス:数字4桁
  • 加入者番号:数字6桁
  • 内線番号(任意):数字2桁

例: 654-8764-439434-01

ここでは、.findall() と、非キャプチャグループでの否定の先読み (?!) および否定の後読み (?<!) を使うことにします。

3つの電話番号を含むリスト cellphones と、re モジュールはセッションに読み込まれています。IPython Shell で print() を使ってデータを確認できます。

この演習はコースの一部です

Pythonで学ぶ正規表現

コースを見る

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

for phone in cellphones:
	# Get all phone numbers not preceded by area code
	number = re.____(r"(____-)____-____-____", ____)
	print(number)
コードを編集して実行