我需要检查一个字符串(电子邮件地址的本地部分)是否除了:
之外什么都没有如何使用Java regex
?
示例:a_1_b.c
和a_b_1
应该没问题,但1.a_b.2
和1_a*3
应该被丢弃。
答案 0 :(得分:8)
如果您想验证电子邮件的正确性,您可能只想依靠JavaMail API为您执行此操作。然后,您无需担心将RFC 822规范的详细信息编码为正则表达式。更不用说如果你正在处理电子邮件地址,你可能想要一种简单的方法来发送它们,图书馆也有。您可以通过以下方式验证电子邮件地址是否有效:
try {
new InternetAddress(email).getAddress();
} catch (AddressException e) {
// it's not valid
}
答案 1 :(得分:2)
您应该找到更多信息here。
答案 2 :(得分:1)
我想,正则表达式[\w]*\.[\w]+|[\w]+
应该可以正常工作。
答案 3 :(得分:0)
要检查自己的格式,这应该有效:
Pattern p = Pattern.compile("[a-zA-Z0-9_]+[\\.]{0,1}[a-zA-Z0-9_]*");
答案 4 :(得分:0)
假设还必须有一个'@',并且它必须在单个'。'之前(但不是之前),你可以做到
final static private String charset = "[a-zA-Z0-9_]"; // separate this out for future fixes
final static priavte String regex = charset + "+@" + charset + "+\." + charset + "+";
boolean validEmail(String email) {
return email.matches(regex);
}