如何在 C# 中使用 Ipaddress 忽略电子邮件地址

How to ignore Email Address with Ipaddress in c#

我正在使用以下正则表达式来验证电子邮件地址,我正在使用服务器端验证。

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

上面的表达式完美地验证了电子邮件地址,但它没有验证 test@192.123.12.1 类型的电子邮件地址。

我没有使用 IP 地址作为域名的电子邮件地址来获得验证测试通过。我用谷歌搜索但没有找到任何有用的结果。

请帮帮我。我的问题是:test@192.123.12.1 不应该通过验证测试。

您可以在 @ 之后使用前瞻,以确保在 @

之后至少有 1 个字母表
/\w+([-+.']\w+)*@(?=.*[a-zA-Z])\w+([-.]\w+)*\.\w+([-.]\w+)*/
  • (?=.*[a-zA-Z])积极向前看。检查 @ 是否包含字母表。如果此匹配项 returns 为真,则继续处理剩余的模式。否则会丢弃整个字符串。

Regex Demo

测试

Regex pattern = new Regex(@"^\w+([-+.']\w+)*@(?=.*[a-zA-Z])\w+([-.]\w+)*\.\w+([-.]\w+)*$");

Console.WriteLine( pattern.IsMatch("name@mailinator.com"));
=> True

Console.WriteLine( pattern.IsMatch("test@192.123.12.1"));
=> False