Я должен разделить большой список адресов электронной почты и имен, я должен разделить запятыми, но некоторые имена имеют запятые в них, поэтому я должен сначала разобраться с этим. К счастью, имена заключены в кавычки.
В данный момент я получаю с выводом регулярных выражений, например, вот так (правка: на форуме я не вижу сообщений электронной почты!):
"Talboom, Esther"
"Wolde, Jos van der"
"Debbie Derksen" <deberken@casema.nl>, corine <corine5@xs4all.nl>, "
Последнее пошло не так, потому что у имени не было запятой, поэтому оно продолжается до тех пор, пока оно не будет найдено, и именно это я хочу использовать для разделения. Поэтому я хочу, чтобы он смотрел, пока не найдет «<».
Как я могу это сделать? </p>
import java.util.regex.Pattern;
import java.util.regex.Matcher;
String test = "\"Talboom, Esther\" <E.Talboom@wegener.nl>, \"Wolde, Jos van der\" <J.vdWolde@wegener.nl>, \"Debbie Derksen\" <deberken@casema.nl>, corine <corine5@xs4all.nl>, \"Markies Aart\" <A.Markies@wegenernieuwsmedia.nl>";
Pattern pattern = Pattern.compile("\".*?,.*?\"");
Matcher matcher = pattern.matcher(test);
boolean found = false;
while (matcher.find ()) {
System.out.println(matcher.group());
}
редактирование:
Лучшая строка для работы, так как не у всех есть имя или кавычки:
String test = "\"Talboom, Esther\" <E.Talboom@wegener.nl>, DRP - Wouter Haan <wouter@drp.eu>, \"Wolde, Jos van der\" <J.vdWolde@wegener.nl>, \"Debbie Derksen\" <deberken@casema.nl>, corine <corine5@xs4all.nl>, clankilllller@gmail.com, \"Markies Aart\" <A.Markies@wegenernieuwsmedia.nl>";