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

use*_*230 0 javascript java regex string pattern-matching

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

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

验证要求:

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

例如:abc@roin.com传球,john_mandoza@roin.com传球,john_manodza@google.com失败......

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

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

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

Roh*_*ain 6

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

  • \\S+ 用于匹配任何非空格字符
  • ?之后\\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
}
Run Code Online (Sandbox Code Playgroud)