regex 如何验证表达式[已关闭]

bweufnob  于 2023-04-07  发布在  其他
关注(0)|答案(2)|浏览(116)

已关闭,该问题需要details or clarity,目前不接受回答。
**想要改进此问题?**通过editing this post添加详细信息并澄清问题。

14小时前关闭
Improve this question
谁能解释一下下面的验证规则是如何工作的?

^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,5}))$

如何理解验证规则。

ssm49v7z

ssm49v7z1#

是的,但是在研究了所有的正则表达式文档资源之后,我得到了一些对你有帮助的信息;您提供的验证规则是一个正则表达式,可用于验证电子邮件地址。以下是其工作原理的说明:
^([\w-.]+)@(([([0-9]{1,3}.){3}[0-9]{1,3}])|(([\w-]+.)+)([a-zA-Z]{2,5}))$
正则表达式开头的^字符匹配字符串的开头。
([\w-.]+)匹配一个或多个单词字符、连字符或点,它们表示电子邮件地址的用户名部分。
@匹配用于分隔用户名和域名的@字符。
正则表达式的其余部分用于匹配域名,域名可以是IP地址或域名。
(([([0-9]{1,3}.){3}[0-9]{1,3}])|(([\w-]+.)+)([a-zA-Z]{2,5}))匹配IP地址或域名:

  • ([0-9]{1,3}.){3}[0-9]{1,3}匹配www.example.com形式的IP地址xxx.xxx.xxx.xxx,其中xxx是0到255之间的数字。
  • ([\w-]+.)+匹配一组或多组一个或多个单词字符或连字符,后跟一个点,表示一个子域。
  • [a-zA-Z]{2,5}匹配由2到5个字母组成的顶级域。

$匹配字符串的结尾。
因此,正则表达式匹配www.example.com形式的电子邮件地址username@domain.com,其中域可以是IP地址或域名。

zyfwsgd6

zyfwsgd62#

总的来说,@Abhisha Kumar的答案是正确的,但是有几个事实错误,所以让我纠正一下。
此正则表达式尝试验证电子邮件。

^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,5}))$

@之后,允许使用格式为[xxx.xxx.xxx.xxx]的IP地址,但此正则表达式将匹配[555.555.555.555],这不是有效的IP地址。
另一方面,这个正则表达式对地址的局部部分有很大的限制,禁止使用大多数特殊符号和引号。
阅读更多关于允许的电子邮件地址,你可以阅读here

相关问题