2011-08-06 33 views
1

我在下面的格式获得电子邮件地址列表中的一个servlet作为一个参数从请求:如何解析此字符串以提取电子邮件地址?

,Group 4: [[email protected],[email protected]],,Group 4: [[email protected]],,Group 3: [],,Group 2: 
[[email protected],[email protected],[email protected],[email protected],[email protected]],,Group 1: 
[[email protected],[email protected],[email protected]],,Nirmal testGroup: [[email protected]], 

我怎么能分析所有不同的电子邮件地址从这个Java中?

组名并不重要。此外,组名不一定总是作为组1,组3,它可以是任何包含空格的组。只需要有来自字符串的所有唯一电子邮件地址的列表/数组。

回答

2

使用regex挑出([])方括号中的一切,那么每个那些对逗号split

String example = ",Group 4: [[email protected],[email protected]],,Group 4: [[email protected]],,Group 3: [],,Group 2:\n" + 
         "[[email protected],[email protected],[email protected],[email protected],[email protected]],,Group 1: \n" + 
         "[[email protected],[email protected],[email protected]],,Nirmal testGroup: [[email protected]],"; 
Pattern pattern = Pattern.compile("\\[(.*?)\\]"); 
Matcher matcher = pattern.matcher(example); 
while (matcher.find()) { 
    for (String email : matcher.group(1).split(",")) { 
     System.out.println(email); 
    } 
} 
+0

你能建设正则表达式,因为我不以前那么使用正则表达式的任何帮助不知道该怎么做? –

+0

增加了一些示例代码 –

+0

独特性呢?我的意思是电子邮件ID应该是唯一的我应该使用一个HashSet并保存所有的id。这是否确保唯一性? –

相关问题