4
電子メールと名前の大きなリストを分離する必要がありますが、コンマで分割する必要がありますが、一部の名前にはコンマが付いているため、最初に処理する必要があります。幸いにも、名前は "引用符"の間にあります。正規表現エスケープ文字
私は例えば、このような私の正規表現の出力(編集:それは私が見るフォーラムでの電子メールを表示しません!):で取得現時点で
"Talboom, Esther"
"Wolde, Jos van der"
"Debbie Derksen" <[email protected]>, corine <[email protected]>, "
最後のものは名前が持っていた間違った原因を行ってきましたコンマはありませんので、それが見つかるまでそれが続き、それは私が分離するために使いたいものでした。だから私はそれが '<'が見つかるまで見てほしい。 どうすればいいですか?
import java.util.regex.Pattern;
import java.util.regex.Matcher;
String test = "\"Talboom, Esther\" <[email protected]>, \"Wolde, Jos van der\" <[email protected]>, \"Debbie Derksen\" <[email protected]>, corine <[email protected]>, \"Markies Aart\" <[email protected]>";
Pattern pattern = Pattern.compile("\".*?,.*?\"");
Matcher matcher = pattern.matcher(test);
boolean found = false;
while (matcher.find()) {
System.out.println(matcher.group());
}
編集:
String test = "\"Talboom, Esther\" <[email protected]>, DRP - Wouter Haan <[email protected]rp.eu>, \"Wolde, Jos van der\" <[email protected]>, \"Debbie Derksen\" <[email protected]>, corine <[email protected]>, [email protected], \"Markies Aart\" <[email protected]>";
私は前と同じ正規表現を使用していた - 私はそのような(法的な)名前で失敗するだろうと見るまで私のように。 – fge
@fge多くの場合、* 2つのステップでこれらの処理を行う方が簡単です - 正規表現を読みやすくして、理解しやすくし、デバッグして維持する傾向があります – Bohemian
また、 '.split()'は内部的に 'パターンとその提供された 'split()'メソッドを使うかもしれません; – fge