我正在尝试修改从其他人构建的 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/