java - 将破折号添加到 Java 正则表达式

标签 java regex

我正在尝试修改从其他人构建的 Java 程序的属性文件中提取的现有正则表达式。

当前用于匹配电子邮件地址的正则表达式是 -

RR.emailRegex=^[a-zA-Z0-9_\\.]+@[a-zA-Z0-9_]+\\.[a-zA-Z0-9_]+$

这与诸如 abc.xyz@example.com 之类的电子邮件地址相匹配,但现在某些电子邮件地址中包含破折号,例如 abc-def.xyz@example.com> 并且那些未通过 Regex 模式匹配。

我的新 Regex 表达式是什么,可以将破折​​号添加到该正则表达式匹配中,还是有更好的方式来表示它?

最佳答案

根据您使用的正则表达式,您可以将破折​​号添加到您的字符类中:

RR.emailRegex=^[a-zA-Z0-9_\\.]+@[a-zA-Z0-9_]+\\.[a-zA-Z0-9_]+$
add
RR.emailRegex=^[a-zA-Z0-9_\\.-]+@[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+$

顺便说一句,你可以像这样缩短你的正则表达式:

RR.emailRegex=^[\\w.-]+@[\\w-]+\\.[\\w-]+$

无论如何,我会使用 Apache EmailValidator而是像这样:

if (EmailValidator.getInstance().isValid(email)) ....

关于java - 将破折号添加到 Java 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37010701/

相关文章:

wpf - 如何在 TextBox 上设置正则表达式?

Java move 具有特定文件扩展名的文件

java - 如何使用 Maven 运行 java 程序

java - 如何在 Java 中创建停靠面板?

java - Android:100+ KB 的文件下载变成 1 KB

java - 如何在正则表达式中使用插入符和美元?

regex - Angular Reactive Forms 验证日期年份四位数字

python - 如何删除包含数字、特殊字符、网站 URL 或电子邮件的整个句子?

java - 如何为已经存在的类创建一个方法,以便它使用一个变量,并从中将其作为参数调用?

java - 在java中使用算术运算符和函数分割字符串