Java 查找结尾带有特定单词的电子邮件正则表达式
我知道这是一个老问题,但我无法解决一个问题,我想得到一个解决方案 我被要求验证电子邮件的正则表达式,以便Java 查找结尾带有特定单词的电子邮件正则表达式,java,regex,Java,Regex,我知道这是一个老问题,但我无法解决一个问题,我想得到一个解决方案 我被要求验证电子邮件的正则表达式,以便@之前的字母由a-z、a-z、0-9、和组成。域之后,即@,应该有a-z或-。后面的最后一个值只能在com、net或org之间 我试图用正则表达式部分解决这个问题: 模式p=Pattern.compile(“^[\u A-Za-z0-9.]+@[A-z-]+\\.com$”) 这没用。我发现甚至 模式p=模式编译(“^A-Za-z0-9.]+@[A-z-]+”) 甚至对于像:test@doma
@
之前的字母由a-z、a-z、0-9、
和
组成。域之后,即@
,应该有a-z或-
。后面的最后一个值只能在com
、net
或org
之间
我试图用正则表达式部分解决这个问题:
模式p=Pattern.compile(“^[\u A-Za-z0-9.]+@[A-z-]+\\.com$”)
这没用。我发现甚至
模式p=模式编译(“^A-Za-z0-9.]+@[A-z-]+”)
甚至对于像:
test@domain.xyz
您缺少|
操作员:
^[_A-Za-z0-9.]+@[a-z]+[a-z-]+[a-z]+\.(com|net|org)$
请注意,它也不接受以连字符开头\结尾的域。如果您确实想接受这些条件:
^[_A-Za-z0-9.]+@[a-z-]+\.(com|net|org)$
这可能是你找到匹配项的方式。就像上面提到的@GalAbra一样,您缺少正则表达式的某些部分 请参见下面的java代码:
Pattern mPattern = Pattern.compile("^[A-Za-z\\._]+@[a-z\\-]+\\.(com|net|org)$", Pattern.MULTILINE);
Matcher mMatcher = mPattern.matcher("test@domain.org\ntest@do-main.com\nfoo@bar.net");
while(mMatcher.find()){
System.out.println(mMatcher.group());
}
返回:
test@domain.org
test@do-main.com
foo@bar.net
Regex必须只允许
com
、net
或org
在最后一个
操作符之后
试试下面的正则表达式
^[_A-Za-z0-9\\.]+@[-a-z]\\.+(com|net|org)$
您不需要在字符类中转义点
。