0

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

在我的网络服务中,我必须检查这个字段,如果验证通过,那么我将请求发送到第三方服务。

需要验证:

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

例如:abc@roin.com通过、john_mandoza@roin.com通过、john_manodza@google.com失败……

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

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

这种字符串解析方法有效,但有没有更好的方法来做到这一点?

4

1 回答 1

6

你可以试试这个模式(\\S+?@roin\\.com): -

  • \\S+用于匹配任何非空格字符
  • ?after\\S+用于进行不情愿的匹配。它将匹配最少数量的字符以满足模式
  • \\.用于匹配.
  • 由于.是正则表达式中的一个特殊字符,这就是为什么我们需要对其进行转义以将其匹配为文字。

所以,这里的代码: -

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
}
于 2012-10-17T17:26:04.093 回答