java - 正则表达式电子邮件地址验证

标签 java regex email

有人可以向我解释一下这个 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/

相关文章:

php - substr 计数返回错误结果

java - 更新现有 Gradle Libs 依赖项,以在 Spring 项目中使用 Jackson 2.8.5 和 DynamoDB 编码 ZonedDateTime

java - 什么是NullPointerException,我该如何解决?

Java如何根据输入检查多个正则表达式模式?

python - 使用python向多个用户发送邮件

php邮件特殊字符utf8

php - Html 电子邮件不使用 php 发送

java - System.out.println ("abc"+3+2);为什么输出是 abc32 而不是 abc5?

java - Android Studio 解析 JSON 对象不起作用

Python 正则表达式返回真/假