と呼ばれるJavaの文字列がありますKiran<kiran@gmail.com>
。他のコンテンツを削除して kiran@gmail.com だけの文字列を取得したい。
String s1= kiran<kiran@gmail.com>
出力はkiran@gmail.com
これを解決するのを手伝ってください。
電子メール アドレスを解析しようとしている場合は、InternetAddressクラスを使用することをお勧めします。これは Java EE の一部です (Java SE を使用している場合は、javax.mail依存関係を追加する必要があります)。
そのクラスは、あなたのような電子メール アドレスを含む文字列を解析できます。
String s1 = "kiran<kiran@gmail.com>";
InternetAddress address = new InternetAddress(s1);
String email = address.getAddress();
私はこのように考えています:
次のことができます。
String s = "To: John Smith <john@smith.com>, Janes Smith\n"
+ "<jane@smith.org>, Tom Barter <tom@test.co.uk>, Other \n"
+ "Weird @#$@<>#^Names <other@names.me>, \n"
+ "Long Long Long Long Name <longlong@name.com>";
s = s.substring(3); // filter TO:
System.out.println(s);
// Use DOTALL pattern
Pattern p = Pattern.compile("(.*?)<([^>]+)>\\s*,?",Pattern.DOTALL);
Matcher m = p.matcher(s);
while(m.find()) {
// filter newline
String name = m.group(1).replaceAll("[\\n\\r]+", "");
String email = m.group(2).replaceAll("[\\n\\r]+", "");
System.out.println(name + " -> " + email);
}