java - 使用正则表达式验证电子邮件的最大长度

标签 java regex maxlength

我找到了这个用于电子邮件验证的正则表达式。

[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})

我希望电子邮件的最大长度为 20 个字符,所以我将其更改为:

([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})){0,20}

但是当我输入超过20个字符时,它接受了! 我也用过

^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})){0,20}$ 

但它没有正常工作。我想在 java 代码中使用它

最佳答案

您不能只将 {0,20} 添加到整个正则表达式,因为这意味着每个电子邮件地址出现 0 到 20 次。

你可以像这样使用它,使用前瞻来强制长度:

^(?=.{1,20}$)[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$

关于java - 使用正则表达式验证电子邮件的最大长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24115303/

相关文章:

java - 我需要在游戏中显示分数,该分数可以随着玩家获得分数而更新

java - 这个程序有什么问题

PHP Regex - 用完全关闭替换所有自关闭标签

ios - NSRegularExpression-如何匹配可能带有括号,方括号等的文本

javascript - 用于验证大于 0 且小于 1999 的数字的正则表达式

java - 从命令行构建 IntelliJ Artifact

java - 从 OSGi 包导入资源

java - 根据文本的大小在文本字段中设置 maxlength

asp.net - 指定多行文本框的最大长度

c# - 是否可以在输入时检查 datagridview 中的单元格值长度?