我有一串电子邮件“test@test.lt; test2@test.lt; test3@test.lt”
如何编写简单的正则表达式来检查所有单词中是否包含[@。]至少一次?
答案 0 :(得分:4)
不需要正则表达式:
bool allOk = str.Split(';').All(email => email.Count(c => c == '@') == 1);
虽然这可能会导致错误的结果(foo@bar_foo.com
不是有效的电子邮件!)
答案 1 :(得分:1)
我不认为RegEx是必要的,但这是我将使用的模式; \b[a-zA-Z0-9]+@[a-zA-Z0-9]+\b
\b
是单词边界,然后我有字母数字字符集。 +
表示前一个char的一次或多次出现。所以它从单词边界开始说,它可以有0个或更多的任何字符跟随@,然后再一个,一个或多个字母数字字符后跟一个单词边界。
答案 2 :(得分:1)
答案 3 :(得分:0)
@jsfviky答案的这个简单变体允许域级和本地部分的电子邮件地址中的句点和连字符,以及一次性样式电子邮件地址的加号:
[a-zA-Z0-9-\.\+]{1,}@(?:[a-zA-Z])[a-zA-Z\.-]{1,}.[a-zA-Z]{1,4}
实际上这是您所需要的全部内容,但有效的电子邮件地址可能包含!#$%&'*+-/=?^_
{|}〜`中的任何一个,因此您可能希望根据使用情况改变这一点。
答案 4 :(得分:-2)
如果您需要电子邮件验证程序,请试用此正则表达式:
[A-ZA-Z0-9 - ]。{1,} @([A-ZA-Z])[A-ZA-Z] {1,} [A-ZA-Z] {1 ,4}