有人可以向我解释一下这个 java Regex 吗?
^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|in|aero|jobs|museum)$
此正则表达式用于验证电子邮件地址。
最佳答案
验证电子邮件地址现在被认为是不好的做法( stop validating email addresses with regex ),尤其是在您的问题中使用这样的表达方式。例如,这是 more complete expression .
对于这个表达式,我们将其分成几部分:
匹配字符串的开头
^
匹配列表中的至少一个字符
[a-z0-9!#$%&'*+/=?^_`{|}~-]+
非捕获 ( see backreference ) 组,可重复 0..n 次,匹配 .
,然后至少匹配列表中的一个字符。
(?:\\.[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)
字符串结尾。
$
关于java - 正则表达式电子邮件地址验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12448918/