2011-08-03 9 views
0

私はすべての国際番号の正規表現を作るのは無駄だと認識しています。だから私は、文字列は、国際電話コードの例を開始していることを確認します正規表現を必要とする妥協案として:ダイヤル接頭辞のための正規表現(例えば+44など)

(44)または(33)など

私は正規表現のまだを、書く方法を理解しませんどんな助けでも大歓迎です。

p.s.これは、C#.netプロジェクトで使用するためのものです。

ありがとうございました。

答えて

4

あなたはこれは文字列

^マッチスタートを行い

\二重​​のエスケープする必要はありませんので、この

var regex=new Regex(@"^\(\+\d{1,4}\)"); 

が、私は文字列の前に@ビットを使用しています試してみてください

\(マッチ(

\+マッチ+

\d{1,4}マッチ1-4桁

\)マッチブラケット

また、あなたは、C#を使用しているとして、これはあなたがを対象に、正規表現を構築し、テストするのに役立ちますようごExpressoの使用を検討することを望むかもしれません.Net正規表現ライブラリであり、それらを使用するためのC#コードを生成することもできます。

+1

米国には国コード1、ロシアには7があります。また、3桁および4桁の国コードもあります。 –

+1

これで修正されました –

+1

最後の括弧には現在、バックスラッシュはありません。 –

0

これは複雑な問題です。電話番号をフォーマットする必要がないため、国番号の直後に数字が表示される可能性があるためです。これらのコードはさまざまな長さを持つことができるため、確認するには国番号のリストが必要です。アメリカとロシアにはそれぞれ1と7があり、ほとんどのヨーロッパ諸国と他の大国では2桁のコードがありますが、3桁のコードもあります(それ以上はないと思います)。したがって、少なくとも1桁と2桁のコードのリストが必要です。電話番号がそのリスト内のコードで始まっていない場合は、3桁の数字をとることができます。

正規表現を使ってビルドするかどうかを考える前に、私はこれを明確にします。シンプルなコードでは簡単かもしれません。

関連する問題