如今,验证电子邮件地址被认为是一种不好的做法(停止使用regex验证电子邮件地址),尤其是使用问题中的表达式时。例如,这是一个更完整的表达式。
至于此表达式,我们将其分为几部分:
匹配字符串的开头
^
匹配列表中的至少一个字符
[a-z0-9!#$%&'*+/=?^_`{|}~-]+非捕获(请参阅backreference)组,可以重复0..n次,与
.列表中的a 和至少一个字符匹配。
(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*只是这个角色
@
非捕获组匹配此列表中的一个字符
[a-z0-9],然后匹配以下列表中的更多字符。匹配的字符串必须以[a-z0-9-]开头和结尾,并且内部可以有[a-z0-9-]。
(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+
与2个大写字母或其中一个单词匹配的非捕获组。
(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|in|aero|jobs|museum)字符串的结尾。
$



