gpt4 book ai didi

java - 通过java中的正则表达式从emailId中找出域

转载 作者:行者123 更新时间:2023-12-03 20:23:04 26 4
gpt4 key购买 nike

假设电子邮件 ID 是 abc@xyz.com,我需要从中提取域名(即 xyz)。我是正则表达式的新手。通过谷歌搜索,我从 this conversation 中找到了一个可能的解决方案。 .并尝试了类似的东西:

 if("abc@xyz.com".matches(".*\\xyz\\b.*")){
//true
}

但它对我不起作用。有什么解决办法吗?

最佳答案

最简单的,你可以使用这个正则表达式:

(?<=@)\S+

参见 demo .

  • (?<=@)是一个 lookbehind,检查前面的是 @
  • \S+匹配所有不是空白字符的字符

在 Java 中,您可以这样做(有几种方法):

Pattern regex = Pattern.compile("(?<=@)\\S+");
Matcher regexMatcher = regex.matcher(subjectString);
if (regexMatcher.find()) {
ResultString = regexMatcher.group();
}

注意事项

\S+适用于您提供的字符串,但它是一个可以匹配各种字符的“粗糙工具”。如果你想要更具体的东西,你可以替换 \S+有了这个:

(?i)\b([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}\b

这是来自 RegexBuddy 库的一个域名表达式。匹配域名的方式有数千种。在你的情况下,如果你确定你得到了一个电子邮件地址,我给你的正则表达式应该可以正常工作。

引用

关于java - 通过java中的正则表达式从emailId中找出域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24404997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com