我需要从包含地址的文本文件中提取电子邮件地址,其中包含一些名称,>
和<
标记包装电子邮件地址。
是否可以使用sublime text,notepad ++或其他删除所有不包含@
符号的字符串?
这是我所拥有的文本文件的示例(包含虚假电子邮件):
...
Cedric Pardit <c.pardi@inconu.com>, emmanuel > <emmanuel.brounidd7@fixe.com>, Claire et Francois <contact@jamaka.com>, Dominique Braud-Poloul <dbpoloul@hik.com>, michel.ours@yahoo.com,
...
更新:预期结果
...
c.pardi@inconu.com
emmanuel.brounidd7@fixe.com
contact@jamaka.com
dbpoloul@hik.com
michel.ours@yahoo.com,
...
答案 0 :(得分:8)
您可以使用正则表达式获取<>
标记之间的电子邮件地址,如下所示:
(?<=\<)(.*)(?=\>+)
假设只有电子邮件地址将包含在<>
。
这将匹配文件中的所有电子邮件地址,无论其位置如何:
([a-zA-Z0-9\.]+@[A-Za-z0-9_]+?\.[A-Za-z]{2,6})
替换为与电子邮件地址匹配的$&\n
并添加换行符。
答案 1 :(得分:1)
我只是这样做:
<?(\S+@\S+)>?
这将匹配<
和>
中包含或未包含的所有地址。
答案 2 :(得分:1)
您可以从文件中提取所有电子邮件ID
BufferedReader bf = new BufferedReader(new
FileReader("C://Users//..........your file name"));
String line="";
Pattern pt = Pattern.compile("[A-Za-z0-9][A-Za-z0-9_.]*@[A-Za-z0-9]+
([.A-Za-z])+");
while((line=bf.readLine()) != null){
Matcher mt = pt.matcher(line);
while(mt.find()){
System.out.println(mt.group());
}
}
答案 3 :(得分:-1)
使用Notepad ++
我首先用换行符替换所有空格和逗号(扩展搜索模式,然后使用\ n)
然后,您将在不同的行上拥有所有电子邮件地址。
从那里你只需要记录一个查找@并切断该行然后是新文本文件的宏,这可以通过打开2个文本文件并使用Ctrl-Tab在它们之间切换来完成。
并替换&lt;和&gt;
这可能不是最简单的方法,但我可能会那样做