Требуется помощь по регулярному выражению для получения идентификаторов электронной почты в стеке ошибок, который выглядит как «Некоторый текст, разрыв строки текста и т. Д.».
Попытка с использованием некоторых предложений, представленных в Переполнение стека.Но большинство из них выводит только ошибку
Ниже приведены некоторые из опций, которые я опробовал,
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("<(<^>>+)>")
Массив Actual Resulting String содержит только одно значение и печатает весь стек, как показано ниже,
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: в идентификаторе электронной почты нет \.Переполнение стека не принимает символ, за которым следует <.Так что до этого добавили escape-символ. </p>