C# 为什么我的正则表达式与电子邮件不匹配?
我必须使用以下代码来验证电子邮件地址C# 为什么我的正则表达式与电子邮件不匹配?,c#,regex,C#,Regex,我必须使用以下代码来验证电子邮件地址 var reg = new Regex(@"/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/"); string e1 = "name@host.net"; string e2 = "namehost.net"; bool b1 = reg.IsMatch(e1); bool b2 = reg.IsMatch(e2); 但是b1和b2都失败了删除开头和结尾的斜杠 var reg = new R
var reg = new Regex(@"/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/");
string e1 = "name@host.net";
string e2 = "namehost.net";
bool b1 = reg.IsMatch(e1);
bool b2 = reg.IsMatch(e2);
但是b1和b2都失败了删除开头和结尾的斜杠
var reg = new Regex(@"^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$");
然而,尽管如此,您的正则表达式并不是匹配电子邮件地址的好模式。事实上,一个精确的图案确实很难制作。用谷歌搜索一些,你会发现更好的。删除开头和结尾的斜杠
var reg = new Regex(@"^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$");
然而,尽管如此,您的正则表达式并不是匹配电子邮件地址的好模式。事实上,一个精确的图案确实很难制作。用谷歌搜索一些,你会发现更好的。你很接近,但实际的正则表达式是:实际上,实际的正则表达式在这里:。RFC822在大约12年前就被淘汰了。您很接近,但实际的正则表达式是:实际上,实际的正则表达式在这里:。RFC822几乎在12年前就被淘汰了。@Joey,真的更糟吗?这一个可以接受大量的点(
@…
匹配为有效),主机名中的非拉丁数字(如阿拉伯数字,如۰۱۳۴۷۸۹),在复仇中,它不会接受所有本应包含的字符。不是说它不支持直接IP地址格式之类的。@Joey,真的更糟吗?这一个可以接受大量的点(@…
匹配为有效),主机名中的非拉丁数字(如阿拉伯数字,如۰۱۳۴۷۸۹),在复仇中,它不会接受所有本应包含的字符。并不是说它不支持直接IP地址格式等。