首页 > 解决方案 > 电子邮件的正则表达式,但可以包含空格

问题描述

我有一个正则表达式问题,有 60 个字符的电子邮件字段。我得到了用于电子邮件验证的正则表达式,但我不确定如何忽略电子邮件后的空格,但整个字符串最多只有 60 个字符。如果 60 个字符后有任何内容,则它无效。

^([A-Za-z0-9!#$%&'*+/=?^_`{|}~-])([A-Za-z0-9.!#$%&'*+/=?^_`{|}~-])*[@]([A-Za-z0-9.\-])([A-Za-z0-9.\-])*[.][A-Za-z.]{2,6}[ \t]+$

这应该是一个有效的字符串(我在这里使用引号来显示字符串长度)'test1.test123@testtesttest.com'

这不应该是一个有效的字符串 'test1.test123@testtesttest.com m'

标签: c#regex

解决方案


提到的正则表达式不起作用(见下文)

在此处输入图像描述

所以我使用了我的并添加了对 60 个字符的最大限制的验证

^(?!^.{60})(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|([a-zA-Z0-9]+[\w-]*\.)+[a-zA-Z]{1}[a-zA-Z0-9-]{1,23})

此正则表达式使用环视语法。您可以在各种屏幕截图中看到输出。你可以在这里查看它是如何工作的。

这里(?!^.{60})匹配 60 个字符的最大限制。其余的正则表达式语法用于验证正确的电子邮件地址。

在此处输入图像描述

在此处输入图像描述

如果也是,请查看正则表达式不验证字符串test1.test123@testtesttest.com m

在此处输入图像描述


推荐阅读