1

次のように、単一の電子メールに対して正規表現を行うことに成功しました。

private readonly Regex _regex = new Regex(@"^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
                                          + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");

ここで、複数の電子メールの正規表現を作成し、セミコロンで区切る必要があります

test@gmail.com;test2@yahoo.com;test3@gmail.com

この正規表現を見つけました:

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*([,;]\s*\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*

しかし、この正規表現もこの文字列を「受け取る」という問題:

h@kj.com;asds@gmail

どうやってやるの?

ありがとう

4

1 に答える 1

2

これは非常に複雑なので、複数の正規表現を作成しないでください。個別に検証するだけです。

foreach (var email in emailList.Split(new char[] { ';' },
    StringSplitOptions.RemoveEmptyEntries))
{
    // validate email
}

さらに、正規表現はこのようなものにはあまり適していません。なぜなら、ユーザーはセミコロンの前後に 1 つ以上のスペースを入れることができたからです。

于 2013-08-28T12:05:07.630 に答える