You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:用正则表达式从异常信息及错误栈中提取< >包裹的邮箱地址

从转义的错误信息中提取邮箱地址

我来帮你搞定这个问题!你遇到的核心问题是正则表达式的写法有误,导致无法正确捕获&lt;和&gt;包裹的邮箱地址。咱们一步步来解决:

先分析你之前写法的问题

你尝试的几个正则要么语法错误,要么匹配逻辑不对:

  • 第一个正则\\&lt;([^&gt;]+)\\)最后多了个无关的),应该匹配&gt;才对,所以无法正确结束匹配
  • 后面的split写法比如&lt;(&lt;^&gt;&gt;+)&gt;存在明显的正则语法错误,&lt;^&gt;&gt;这种写法完全不符合正则规则,导致split无法找到任何分割点,只能返回整个错误信息作为唯一元素

正确的解决方案

方案1:使用Matcher(推荐,支持提取多个邮箱)

这是最可靠的方式,能一次性提取所有符合条件的邮箱。正则的核心是准确匹配转义后的<(&lt;)和>(&gt;),然后捕获中间的邮箱内容。

代码示例:

// 你的错误信息示例
String errorMessage = "Failed messages: javax.mail.SendFailedException: Invalid Addresses; nested exception is: com.sun.mail.smtp.SMTPAddressFailedException: 550 5.0.0 &lt;abc@def.com&gt;... User unknown ; nested exception is: com.sun.mail.smtp.SMTPAddressFailedException: 550 5.0.0 &lt;def@ghi.com&gt;... User unknown ;";

// 正确的正则表达式:匹配&<;开头,&>;结尾,捕获中间的邮箱
Pattern emailPattern = Pattern.compile("\\&lt;([^&gt;]+)\\&gt;");
Matcher matcher = emailPattern.matcher(errorMessage);

// 遍历所有匹配结果
while (matcher.find()) {
    // group(1)就是捕获到的邮箱地址
    System.out.println("提取到的邮箱:" + matcher.group(1));
}

执行后会输出:

提取到的邮箱:abc@def.com
提取到的邮箱:def@ghi.com

正则解释:

  • \\&lt;:匹配转义后的左尖括号&lt;(需要转义&,所以用\\&)
  • ([^&gt;]+):捕获组,匹配任意不是&gt;的字符([^...]是取反匹配),刚好对应邮箱地址
  • \\&gt;:匹配转义后的右尖括号&gt;

方案2:使用split(适合简单场景)

如果一定要用split,可以先按&lt;分割,再对每个分割后的部分按&gt;分割,取第一部分:

String errorMessage = "Failed messages: javax.mail.SendFailedException: Invalid Addresses; nested exception is: com.sun.mail.smtp.SMTPAddressFailedException: 550 5.0.0 &lt;abc@def.com&gt;... User unknown ; nested exception is: com.sun.mail.smtp.SMTPAddressFailedException: 550 5.0.0 &lt;def@ghi.com&gt;... User unknown ;";
String[] splitByLt = errorMessage.split("\\&lt;");

// 从索引1开始,因为索引0是第一个&<;之前的内容
for (int i = 1; i < splitByLt.length; i++) {
    String[] splitByGt = splitByLt[i].split("\\&gt;");
    if (splitByGt.length > 0) {
        System.out.println("提取到的邮箱:" + splitByGt[0]);
    }
}

这个方案也能得到正确结果,但Matcher的方式更直观,且更适合处理多个匹配项的场景。

内容的提问来源于stack exchange,提问作者Giftson David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:57:05