public String readEmails(String fileData) {
String regex = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9]"
+ "(?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?";
String emails = "", emails2 = "";
fileData = fileData.toLowerCase();
Matcher m = Pattern.compile(regex).matcher(fileData);
while (m.find()) {
emails += m.group()+", ";
}
return emails;
}
我正在阅读rtf文件,查找电子邮件然后存储到数据库中。我发现两次提取一封电子邮件。 HYPERLINK“mailto:aa@ymail.com”,然后是aa@ymail.com
如何通过删除所有类似的电子邮件来匹配两封类似的电子邮件并保留一份副本?
答案 0 :(得分:1)
您可以将代码更改为
Set<String> set = new HashSet<String>();
Matcher m = Pattern.compile(regex).matcher(fileData);
while (m.find()) {
String email = m.group();
if (!set.contains(email)) {
emails += email + ", ";
set.add(email);
}
}
return emails;
}
答案 1 :(得分:0)
而不是使用逗号将电子邮件保存为字符串: