私は 2 つの正規表現を持っています。1 つは csv 文字列からユーザー名を取り出し、もう 1 つは電子メールを取り出します。
文字列形式は次のようになります。
String s = "name lastname (username) <mail@mail.something.dk>; name lastname (username) <mail@mail.something.dk>; name lastname (username) <mail@mail.something.dk>";
私の正規表現のコードはこのようなものです。
Pattern pattern = Pattern.compile("(?<=\\()[^\\)]+");
Matcher matcher = pattern.matcher(s);
Pattern pattern2 = Pattern.compile("((?<=<)[^>]+)");
Matcher matcher2 = pattern2.matcher(s);
while (matcher.find() && matcher2.find()) {
System.out.println(matcher.group() + " " + matcher2.group());
}
正規表現のマージに関するいくつかの質問を見つけましたが、回答から、私のものをマージする方法を理解できませんでした。
私のプリントアウトショー:
"username mail@mail.com"
1 つの正規表現を使用して、1 つのmatcherから同じものを出力できますか?
obs: これは学校の課題です。つまり、それらをマージしたり、これ以上行う必要はありませんが、それが可能かどうか、またそれがどれほど難しいかを知りたいです。