我不是RegEx专家所以我使用以下借用的RegEx来验证电子邮件地址:
^[\w\.=-]+@[\w\.-]+\.[\w]{2,3}$
用户已报告拒绝其电子邮件地址frank@brownlie.info。这是因为“inf”被拒绝而被拒绝的“信息”。所以我做了一些阅读并学习了[\ w] {2,3}语法意味着什么,是的,这就是为什么信息被拒绝,因为它是四个字符。将其更改为[\ w] {2,4}。
我喜欢理解我所遇到的问题。我的问题是为什么\ w在方括号内?不会\ w {2,4}也有用吗?
干杯,罗布。
答案 0 :(得分:4)
[\w]
中的外部字符类不必作为\w
已经表示字符类。只有当你想要组合字符或预定义的字符类时,才需要[…]
中的字符类符号[\w\s]
(字符和空白字符)或[\w-]
(字符和连字符) 。因此[\w]
等于\w
。
答案 1 :(得分:0)
您可以在方括号中定义字符集。例如,第一个方括号部分表示“任何字母数字字符AND点和等号和短划线”。然后告诉解析器以下“+”,该集合中的任何字符至少应存在一次。
在最后一部分,因为你只使用\ w并且它本身就意味着“所有字母数字字符”,所以你不需要任何方括号。量词(+,?,*,{n,m})仅影响前一个字符OR字符集(应该用我所解释的方括号定义)。是的,“\ w”在解析RegExp时被视为单个字符。
答案 2 :(得分:0)
惠斯特都可以工作,它通常更好的风格/更易读的组,因为它清楚地表明了重复的内容。
我实际上会更明确地删除一些常见的,有效但不太可能的情况(请注意,如果您允许所有技术上有效的电子邮件地址,那么几乎任何事情都会发生。)< / p>
^[\w\.=-]+@([\w\d-]+\.){1,3}[a-zA-Z]{2,4}$