ロシア/カザフスタンの携帯電話 (+7 9x または +7 7x で始まる) をチェックしたいのですが、re
シンタキシスが完全に頭を悩ませています。
そのような形式の数値を受け入れたい:
+7 9XX XXXXXXX
+7 7XX XXXXXXX
7 7XX XXXXXXX
7 9XX XXXXXXX
8 9XX XXXXXXX (8 is domestic replace for country code)
8 7XX XXXXXXX
9XX XXXXXXX (9 numbers, no country code!)
7XX XXXXXXX
それらを形式で保存し7XXXXXXXXXX
ます(国コード+ 10個の数字、+なし)
私はこれを書きました:
re.search(r'^(\+?79?|\+?77?|89?|87?|9|7)(\d{9})$','+79221234567').groups()
結果を必要な形式で保存するにはどうすればよいですか? 上記の正規表現の結果に適用する別の正規表現を作成する必要がありますか ( re.search('(\d{10})$',result_above)
)、または 1 つの正規表現でフォーマットされた結果を取得するより良い方法がありますか?
PS: 私の正規表現は数値に対して機能しますが、数値を - または () で入力すると失敗します。それを避けることはできますか?