【问题标题】:Regular Exp - Understand The Pattern正则表达式 - 了解模式
【发布时间】: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


【解决方案1】:
 ^   =   String starts with



\w  =   Ranges: matches a letter between A to B,a to b and figures from 1  to 9

 \.  =  matches character (.)

{1,} =  Occur one or more times

\@   =  matches character (@)

[\da-zA-Z-] = match a single character between digit 0-9,a-z , A-Z and -

{2,4} =  Occur 2 to 4 times

^[\w-\.]{1,} indicate abc9-. or 9ab-.

[\da-zA-Z-]{2,4} indicates 1ab or ab- or ab3-

to change unlimited top-level domain after the dot (.) change Regular Expression 

^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{1,}$

output will be: test1@domain1.career

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 2012-01-21
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多