Java中电子邮件验证的正则表达式

Java中电子邮件验证的正则表达式,java,regex,Java,Regex,我有以下用于电子邮件验证的正则表达式: ^([a-z0-9]+[-.+]{0,1}[a-z0-9]++@[a-z0-9-]+.[a-z]{2,3}.[a-z]{2,3}$ 除域名少于4个字符外,它在大多数情况下都有效。 例如: 它适用于以下电子邮件: abc@abc.com.au abc@abcd.com 对于这些电子邮件它失败了 abc@abc.com aabbaa@abc.co 有人能帮我找出上面的电子邮件失败的原因吗?使用下面的正则表达式 ^(([^<>()\[\]\\.,;:

我有以下用于电子邮件验证的正则表达式: ^([a-z0-9]+[-.+]{0,1}[a-z0-9]++@[a-z0-9-]+.[a-z]{2,3}.[a-z]{2,3}$

除域名少于4个字符外,它在大多数情况下都有效。 例如: 它适用于以下电子邮件: abc@abc.com.au abc@abcd.com

对于这些电子邮件它失败了 abc@abc.com aabbaa@abc.co

有人能帮我找出上面的电子邮件失败的原因吗?

使用下面的正则表达式

^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$
([^()\[\]\\,;:\s@“]+(\.[^()\[\]\,;:\s@“]+)*)(“+”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.])){124;([a-zA Z-0-9]+]$
“除了域名少于4个字符外,它在大多数情况下都能正常工作”,但失败的情况远远不止于此。它不会加速名称中的”,因此任何O'Brien都会感到失望。此外,它只允许单个
-
字符
fred\u bloggs\u 2020
可能会感到厌烦。它不接受TLD,如
.info
(4个以上字符)。事实上,它要求TLD像
.co.uk
一样复合。它也不接受子域。它也不会处理非拉丁语域名。它在很多地方都失败了。为什么要通过丢弃合法邮件来验证电子邮件?只需发送一个验证。哦,
([a-z0-9]+[-.+]{0,1}[a-z0-9]+
将导致