【发布时间】:2017-09-18 17:42:52
【问题描述】:
我是正则表达式的新手,我的 VBscript 函数中有下面这个模式来验证电子邮件地址。
regEx.Pattern ="^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,4}$"
1) 有人能用文字解释一下这种模式是如何工作的吗?后面的破折号 (-) 是做什么的?像 w-, Z-
^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,4}$
2) 此外,如果顶级域是 2 到 3 个字符(如 .com、.edu),它看起来只返回 TRUE。如何在点 (.) 后更改为无限顶级域?例如:test1@domain1.career、test2@domain2.consulting
提前谢谢,
【问题讨论】:
-
复制/粘贴到regex101,它会解释你的正则表达式。但基本上:1个或多个单词字符,
-或.后跟@,{然后是1个或多个以下集合[ digit, character from a-z or A-Z, or - ]后跟一个点}(重复1到无限次),然后从以下集合[ digit, character from a-z or A-Z, or -]中减去 2 到 4 个字符。此正则表达式使用^将字符串的开头声明为起始位置,并使用$将字符串的结尾声明为结束位置。 -
@Milacay 不客气。但是,您应该查看其他用于电子邮件解析的正则表达式,因为这不一定符合 RFC 电子邮件标准(由于电子邮件格式的性质,没有任何正则表达式能够 100% 做到这一点)。检查电子邮件有效性的最佳选择是向它发送一封测试电子邮件,看看你是否得到回复。
-
@ctwheels 再次感谢您花时间解释。
标签: regex