为了账号安全,请及时绑定邮箱和手机立即绑定

需要正则表达式来检索异常消息中字符<和>之间的电子邮件 ID

需要正则表达式来检索异常消息中字符<和>之间的电子邮件 ID

慕盖茨4494581 2022-09-28 09:36:20
需要有关正则表达式的帮助以在错误堆栈中检索电子邮件ID,例如“某些文本,某些文本换行符等”。已尝试使用堆栈溢出中提供的一些建议。但是他们中的大多数只打印错误以下是我尝试过的一些选项,Matcher m = Pattern.compile("\\<([^>]+)\\)").matcher(e.getMessage());while(m.find()){    System.out.println(m.group(1));}System.out.println(e.getMessage().split("<(<^>>+)>"));exception.getMessage().split("\\[([^]]+)\\]")exception.getMessage().split("\\<\"(.*?)\"\\>")exception.getMessage().split("<(<^>>+)>")实际结果字符串数组仅包含一个值,并按如下方式打印整个堆栈,Failed messages: javax.mail.SendFailedException: Invalid Addresses;  nested exception is:    com.sun.mail.smtp.SMTPAddressFailedException: 550 5.0.0 <abc@def.com>... User unknown;  nested exception is:    com.sun.mail.smtp.SMTPAddressFailedException: 550 5.0.0 <def@ghi.com>... User unknown;PS:电子邮件 ID 中没有 \。堆栈溢出不接受后跟<的字符。所以在此之前添加了转义字符。
查看完整描述

2 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

根据正则表达式中接受的答案,这可以正常工作,以提取方括号之间的文本

Pattern.compile("\\<(.*?)\\>").matcher(e.getMessage());


查看完整回答
反对 回复 2022-09-28
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

这应该做你想要的,尽管假设每条消息只有一个。


public class someClass {

    private static final Pattern idPattern = Pattern.compile("<.*>");


    public static void main(String[] args) {

        doStuff();

    }


    public static void doStuff(){

        try{

            throwNPE();

        } catch (NullPointerException ex){

            String message = ex.getMessage();

            if(idPattern.matcher(message).matches()){

                System.out.println(getId(message));

            }

        }

    }


    public static String getId(String message){

        String[] messageParts = message.split("<|>");

        if(messageParts.length > 1){

            return messageParts[1];

        }else{

            throw new IllegalArgumentException();

        }

    }


    public static void throwNPE(){

        throw new NullPointerException("<123>");

    }

}

你只需要 doStuff() 和 getId(字符串) 作为你的示例(你可以删除静态),但是想要提供一个工作示例。


任何必要的解释,请询问。祝你好运!


查看完整回答
反对 回复 2022-09-28
  • 2 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信