正则表达式应该接受多个点但不要接受

时间:2017-04-18 07:26:16

标签: regex .net-core

我想接受这样的邮件格式:

"x@x.com"
"x.x@x.com"
"x.x@x.com"
"x.x.x@x.com"
"x@x.x.x.com"
"x@x.x.com"
"etc..."

如何修改此正则表达式以接受电子邮件中的点?

@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
谢谢。

1 个答案:

答案 0 :(得分:1)

回答你的问题:当你的@- @部分包含多于1个点时,由于{2,3}限制量词最小阈值,点之间的一个char部分无法匹配。它需要在点之间至少有2个字符。

您可以使用^([\w.-]+)@([\w.-]+)(\.\w+)$修复它,其中所有点部分但域部分中的最后一部分将出现在第2组中,最后一部分将出现在第3组中。

在.NET中验证电子邮件的最佳方法是one described here