電話番号のフィルタリング
次は、携帯電話番号を検索するスクリプトを書きます。指定した条件に合う番号だけを、番号のリストから抽出します。
リスト中の電話番号の構造は次のとおりです。
- 市外局番(任意):数字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)