0

またはで区切られ、または" "で終わる電子メールの有効な正規表現が必要です@a.comb.com

例えば:

有効な電子メールstring:"email1@a.com email2@b.com email3@a.com"

無効な電子メールstring:"email1@a.com email2@b.com email3@c.com"

4

5 に答える 5

4

ここでは、正規表現が拡張可能で保守可能なソリューションであるとは必ずしも思いません。私はむしろ:

  1. 空白でリストを分割します (おそらく、.com/.org などの後に続く空白で)
  2. ドメイン名 post-@ を抽出する
  3. これとホワイトリスト(またはブラックリスト)を比較してください

私は正規表現がとても好きですが、それが解決策だといつも思っているわけではありません。これに関する議論については、こちらを参照してください。以下に注意してください。

問題に直面したときに、「分かった、正規表現を使用する」と考える人もいます。現在、彼らには 2 つの問題があります。

于 2012-11-30T15:14:31.097 に答える
1

この表現を試すことができます:

^(( |^)[^ @]+@[ab]\.com)+$
//  ^    ^   ^  ^    ^
//  |    |   |  |    +- The mandatory .com   
//  |    |   |  +------ Either a or b
//  |    |   +--------- An @ sign
//  |    +------------- Anything but space or @ repeated at least once
//  +----------------------- Preceded by a space or the beginning of line
于 2012-11-30T15:13:36.417 に答える
0
[A-Za-z0-9_.-]+@[ab]\.com( [A-Za-z0-9_.-]+@[ab]\.com)*

[A-Za-z0-9_.-]+より制限したい場合は、パーツを変更できます。

于 2012-11-30T15:14:32.297 に答える
0

(email[1-3]\@[ab].com )*email[1-3]\@[ab].com?

([1-3] と [ab] は自分に合うものに置き換えてください)。

于 2012-11-30T15:13:35.003 に答える
0

これを試してください: ^(. @(a|b).com(|\s) $

パーマリンク- 「c.com」などの無効な文字列を入力してみて、それも機能することを確認してください

Regexpalは、解決しようとしている問題が何であれ、正規表現を作成する作業を開始するための優れた簡単なツールです。

于 2012-11-30T15:13:38.413 に答える