从文本文件中提取电子邮件地址

时间:2014-02-21 13:57:30

标签: email text replace notepad++ sublimetext

我需要从包含地址的文本文件中提取电子邮件地址,其中包含一些名称,><标记包装电子邮件地址。

是否可以使用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, 
 ...

4 个答案:

答案 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;
这可能不是最简单的方法,但我可能会那样做