Regex 带撇号的电子邮件正则表达式

Regex 带撇号的电子邮件正则表达式,regex,asp.net-mvc,validation,Regex,Asp.net Mvc,Validation,我正在构建一个MVC4 web应用程序,并在验证我的一些ViewModel时使用Fluent验证 我需要验证电子邮件地址,我使用的是正则表达式,它是在Visual Studio中创建默认MVC应用程序时AccountModels类中的默认表达式 RuleFor(x => x.ConfirmEmail) .Matches(@"^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\

我正在构建一个MVC4 web应用程序,并在验证我的一些ViewModel时使用Fluent验证

我需要验证电子邮件地址,我使用的是正则表达式,它是在Visual Studio中创建默认MVC应用程序时AccountModels类中的默认表达式

RuleFor(x => x.ConfirmEmail)
.Matches(@"^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$")
.WithMessage("Please enter a valid email address");
但是,我的客户告诉我,这不接受在@符号前加撇号的电子邮件地址

我对正则表达式一点也不在行,所以有人能帮我修改一下这个正则表达式,在@符号前加上撇号吗

提前谢谢

更新


我输入了错误的代码示例,请立即查看正则表达式-这是一个不接受撇号的正则表达式。

更新后,您要查找的正则表达式是:

^[\w-']+(\.[\w-']+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}}|(\d{1,3}){3}\d{1,3})(:\d{4})$

请注意,此处唯一的更改是在
@
符号之前的两个字符类中的每一个中都添加了
'
(撇号)字符。

看起来应该与撇号匹配。你能提供不匹配的电子邮件吗(为了隐私,可能会更改其中的域名和一些信件)。我怀疑可能还有另一个问题。我同意,它显然接受它们:
^([\w-\.]+)@
您可以在character类中看到撇号。。。哦,顺便说一句,你不需要在字符类中转义圆点。请不要使用正则表达式来验证电子邮件地址。另请参阅和大量相关问题。此外,这个正则表达式很古怪。它将在长度超过六个字符(现在有几个)的顶级域上失败,而带有四位端口号的文本IP地址又是怎么回事?即使没有端口号的废话,这也是错误的。不要用你自己的解决方案来解决这个问题。如果有编程问题,依赖已编写、测试和调试的现有代码是有意义的,那么就是这样。当用户输入完全大写的电子邮件地址时,这似乎不起作用。尽管这样做不是一个很好的用例,但它是人们所做的事情——正则表达式应该支持它。@csharpforemore——有许多形式的不受此支持,例如:
“pretty\”奇怪的“address”@[IPv6:2001:db8:1ff::a0b:dbd0]
。我的目标只是增加足够的内容来处理问题中提到的非常具体的问题。