我有一个要求,在请求包含字段中,我的其余网络服务进入。
在我的网络服务中,我必须检查此字段,如果验证通过,则我将请求发送给第三方服务。
需要验证:
message_from
字段包含email address
string
。我必须检查domain name
(@
之后的所有内容)是否为roin.com
对于前:abc@roin.com
次传球,john_mandoza@roin.com
次传球,john_manodza@google.com
失败......
我可以使用模式匹配器或其他任何方法进行此验证吗?
我使用字符串解析来捕获(@)
后的所有内容,然后执行equalsIgnoreCase
将其与roin.com
进行比较
这种字符串解析方法有效,但还有更好的方法吗?
答案 0 :(得分: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
}