解析电子邮件地址以获取域并进行比较

时间:2012-10-17 17:22:45

标签: java javascript regex string pattern-matching

我有一个要求,在请求包含字段中,我的其余网络服务进入。

在我的网络服务中,我必须检查此字段,如果验证通过,则我将请求发送给第三方服务。

需要验证:

message_from字段包含email address string。我必须检查domain name@之后的所有内容)是否为roin.com

对于前:abc@roin.com次传球,john_mandoza@roin.com次传球,john_manodza@google.com失败......

我可以使用模式匹配器或其他任何方法进行此验证吗?

我使用字符串解析来捕获(@)后的所有内容,然后执行equalsIgnoreCase将其与roin.com进行比较

这种字符串解析方法有效,但还有更好的方法吗?

1 个答案:

答案 0 :(得分:6)

您可以尝试此模式(\\S+?@roin\\.com): -

  • \\S+用于匹配任何非空格字符
  • {li> ?用于\\S+之后进行不情愿的匹配。它将匹配最少数量的字符以满足模式
  • \\.用于匹配.
  • 由于.是Regex中的特殊字符,因此我们需要将其转义为与文字匹配。

所以,这是代码: -

String str = "abc@roin.com";

Pattern pattern = Pattern.compile("\\S+?@roin\\.com");
Matcher matcher = pattern.matcher(str);

if (matcher.matches()) {
    System.out.println("Matches"); // Prints this for this email
}