-3

スクリプトを使用して Google で電話番号を検索したい...文字列または HTML ですべての国の電話番号を検索するための正規表現が必要です...次の正規表現を試しましたが、機能しません....`

private string findphone(string source)
        {
            string my = "";
            string phone = "";

        string MatchPhoneNumberPattern3 = @"\D(\d{3}\s\d{3}\s\d{4})\D";
        MatchCollection mathph3 = Regex.Matches(source, MatchPhoneNumberPattern3);
        foreach (Match match4 in mathph3)
        {
            foreach (Capture capture in match4.Captures)
            {
                if (my.ContainsKey(capture.Value) == false)
                {
                    phone = capture.Value.ToString();

                }
            }
        }

これに関して親切に助けてください。すべての国の電話番号で機能する正規表現が必要です...plz

4

1 に答える 1

4

やりたいことを行うには、まず、国内番号計画に関する ITU (国際電気通信連合) の Web サイトにアクセスする必要があります。

http://www.itu.int/oth/T0202.aspx?parent=T0202

これも良いリソースです: The World Telephone Numbering Guide

次に、さまざまな番号計画を検討し、それらを 1 つの正規表現に統合する必要があります。また、人々は状況に応じて異なる方法で電話番号を表しているという事実に対処します (どこからダイヤルしてどこにダイヤルするかによって、電話番号のさまざまなコンポーネントが必要な場合とそうでない場合があり、番号の形式が変わる場合があります。たとえば、これらはすべて、コンテキストに応じて、北米の同じ加入者回線を表しています。

  • 555-1234
  • 1-555-1234
  • 206-555-1234
  • 1-206-555-1234
  • 00-1-206-555-1234 (フランスなどから直通)
  • 0011-1-206-555-1234 (オーストラリアから直通)
  • 119-1-206-555-1234 (キューバから直通)
  • などなど、まだまだあります。

電話番号の表記にも多くの規則があることを忘れないでください。

  • 206.555.1234
  • 206/555.1234
  • (206) 555-1234
  • 206-555-1234
  • 番号の前に国コードが付いている国際標準は言うまでもありません。

    • +1:206-555-1234 (NANP)
    • +33:xx.xx.xx.xx.xx (フランス)

      フランスでは、10 桁の電話番号の 1 桁目は、加入者が現在接続している通信事業者によって異なる場合があります。パリの加入者が現在 PTT から電話サービスを受けている場合は 01.xx.xx.xx.xx です。同じパリの加入者がセゲテルに切り替えた場合は、71.xx.xx.xx.xx。

はすべてかなり一般的に使用されています。

他の国も少なくとも同様に複雑です。

すべての準備が整ったら、ITU Web サイトの変更を監視する必要があります。あなたは「電気通信事業者/サービス プロバイダーまたは電気通信管理者」ではないため、 ITU の通知サービス。

さらに、番号計画が変更されたときに、人々が電話番号の記録方法をすぐに変更するとは限らないため、後方互換性を提供する必要があります。

于 2013-08-29T18:27:16.397 に答える