2009-08-18 17 views
0

私は、ユーザーに電子メールアドレスを割り当てることができるtextBoxコントロールを持っています。 カンマまたは次の行(改行)を入力して、電子メールを入力できます。C#-Windows App - 正規表現のヘルプ

タスクは、テキストボックス(TextBox)コントロールが改行(\ n)で文字または コンマそれに応じて電子メールアドレスを分割が含まれているかどうかを確認することです。

I適用:
列[]電子メール= txtemailAddress.Text.Split( '\ n' を)。
メールアドレスを分割します。


私は「{または} 『テキストボックス」が含まれているかどうかを確認する必要があり、単一のルーチンを必要とする\ n』のとメールアドレスが形式では無効ですcharacter.If は、分割に基づいて文字列を分割それは同様に例外をスローする必要があり、事前に

感謝を

答えて

1

のstring.Split方法は、上分割する文字の配列を受け付けます。

// split on newline or comma 
txtemailAddress.Text.Split(new[]{'\n', ','}); 

電子メールアドレスの検証に関しては、これは一目瞭然と思われるかもしれないタスクの1つですが、これは予想以上の挑戦であることがわかります。 This has been dicussed here at SO before

0

電子メールが正しいかどうかを確認するパーサーを書くのは簡単ではありません。あなたは

char[] delimiters = new char[] { ',', '\n' }; 
string[] emails = txtemailAddress.Text.Split(delimiters); 
0

他の回答のようにそれを使用して分割する文字の配列を渡すことができます分割する は良いですが、あなたは、正規表現について尋ねたので、:\s*,\s*|\s+動作するはずです、私は信じています。コンマ(前後の空白を含む)と空白(改行、スペース、タブなど)のいずれかの形式で区切ります。

var addresses = Regex.Split(text, @"\s*,\s*|\s+"); 
0

この方法は、これらの質問を参照してください電子メールを検証するために、正規表現

よりも高速である

string[] emails = txtemailAddress.Text.Split('\n', ','); 

を使用して分割するには:

https://stackoverflow.com/search?q=validate+email

これはタスクがにあまりにも複雑ですここで別の議論を開きます。