我正在使用包含正则表达式的字符串来验证电子邮件, 电子邮件正确验证,除非" +"符号包含在电子邮件中。 如果有人有一个电子邮件ID,假设像这样" billgates+apple@gmail.com", 所以在这一点上我的正则表达式不工作itz给我一个无效的用户名消息,因为否则电子邮件ID itz工作正常这里是我的正则表达式
string strPattern = "^([0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$";
我尝试使用其他正则表达式验证特殊符号,但我仍然有同样的错误。
string strPattern = "^[a-zA-Z0-9]+([a-zA-Z0-9_.\\$&-]+)*@[a-zA-Z0-9]+([a-zA-Z0-9_.\\$&-]+)*\\.([a-zA-Z0-9]{2,4})$";
如果有人可以帮忙,那将是有用的,而不是
答案 0 :(得分:0)
使用类似的内容应该有效:^([0-9a-zA-Z]([-.\\w\\+]*[0-9a-zA-Z\\+])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$
。
这假设您可以使用名称中的加号,但不能使用域。电子邮件也不能以加号开头。如果它是由一个字符组成的,则该字符也不能是加号。
此代码:
string[] terms = new string[] {"bob@bobmail.com", "+@mail.com", "+bob@mail.com", "bob1+bob2@email.com", "bob1+@microsoft.com" };
Regex regex = new Regex("^([0-9a-zA-Z]([-.\\w\\+]*[0-9a-zA-Z\\+])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$");
foreach (string term in terms)
{
System.Console.WriteLine(regex.IsMatch(term));
}
System.Console.ReadKey();
收率:
True
False
False
True
True
我不知道你是否希望得到最后一个案例的结果(bob1+@microsoft.com
)。