【发布时间】:2014-10-23 10:11:58
【问题描述】:
在我的网站中,我使用下面的正则表达式来验证电子邮件。
^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$
我的疑惑是:
-
我可以将以下正则表达式用于相同的功能吗?
^[a-zA-Z0-9_.-]+@[a-zA-Z0-9.-]+.[a-z]{2,4}$ -
我问这个的原因是,我试图研究它的意思。所以我很困惑
[a-zA-Z0-9_.-]覆盖[a-zA-Z0-9]和[a-zA-Z0-9_-]的所有实例
我不确定,因为我是初学者。
我从
那里得到了正则表达式我检查了http://regex101.com/#pcre 中的两个正则表达式。而且我找不到任何结果差异。可能是因为我的知识有限
请澄清一下。提前感谢大家
【问题讨论】:
-
它们没有完全相同的功能,但你的短正则表达式比长正则表达式更好,因为它避免了长正则表达式中出现的灾难性回溯。
-
@nhahtdh,谢谢你..我可以知道长正则表达式输出的确切变化是什么吗? :)
-
长的不接受用户部分小于3个字符
ad@gmail.com,不接受域小于6个字符myname@x.com。另一件事,请在最后一个.添加转义。 -
@nhahtdh,
^[a-zA-Z0-9_.-]{3,}@[a-zA-Z0-9.-]{6,}.[a-z]{2,4}$。是否等于正则表达式? -
这些正则表达式都不好。您需要接受本地部分包含加号的电子邮件地址(我的有一个);等号、感叹号、星号和您当前排除的许多其他标点符号也是有效的,尽管不像 plus 那样常见,它在许多安装中都有自己的有用功能。