3

段落から電話番号を選びたいのですが、電話番号の形式は

123-456-7890
123.456.7890
123*456*7890
(202) 553-6381
123_456_7890
1234567890
1.2.3.4.5.6.7.8.9.0
1*2*3*4*5*6*7*8*9*0
954 665 53 92 
456 7890 x123 

正規表現を取得しましたが、すべての場合に機能するとは限りません。正規表現は

$pat1="/(\d)?(0-9)|(\s|-|_|.|)?(\()?(\d){3}(\))?(\s|-|_|.){1}(\d){3}(\s|-|_|.){1}(\d){4}/";
4

2 に答える 2

1

最高ではないかもしれませんが、すべてのインスタンスに一致します

(\d{3}([\-\.\*\s_]?\d{3})([\-\.\*\s_]?\d{4}))|\d(([\.\*]\d){9})|(\(\d{3}\)\s\d{3}\-\d{4})|(\d{3}\s\d{3}\s\d{2}\s\d{2})|(\d{3}\s\d{4}\sx\d{3})
于 2012-10-16T06:40:48.480 に答える
1

単純な非圧縮正規表現は次のようになります。

^\d{3}\s\d{3}\s\d{2}\s\d{2}|\d{3}\s\d{4}\sx\d{3}|\d{10}|\(?\d{3}\)?[\s-.*_]\d{3}[-.*_]\d{4}|(\d[*.]){9}\d$

最後の行にx123があることに注意してください。これが4桁の数字の場合は、正規表現を次のように変更する必要があります。

^\d{3}\s\d{3}\s\d{2}\s\d{2}|\d{3}\s\d{4}\s\d{4}|\d{10}|\(?\d{3}\)?[\s-.*_]\d{3}[-.*_]\d{4}|(\d[*.]){9}\d$

また、^はで始まることを意味し、$はで終わることを意味します。一部の正規表現クエリでは、それらを削除する必要があります。

于 2012-10-16T06:52:39.107 に答える