使用Java正则表达式来提取一篇文章中的邮箱账号

来源:互联网 发布:c语言函数的声明 编辑:程序博客网 时间:2024/06/05 21:18

这个程序将从一个名为source.txt的文档中匹配邮箱帐号,然后,将文档中所有的邮箱全部都收集起来存储到另一个文件mailCollect.txt中。

利用了Java的正则表达式。


package com.xujin;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import java.util.regex.Matcher;import java.util.regex.Pattern;public class FindMail{public static void main(String...args) throws IOException{FindMail findmail = new FindMail();findmail.matchMail(findmail.readFile());}private String readFile() throws IOException{BufferedReader in = new BufferedReader(new FileReader("source.txt"));String s;StringBuilder sb = new StringBuilder();while((s = in.readLine()) != null)sb.append(s + "\n");in.close();return sb.toString();}private void matchMail(String source) throws IOException{String regex = "[a-zA-z\\.[0-9]]*@[a-zA-z[0-9]]*\\.com";Pattern p = Pattern.compile(regex);Matcher m = p.matcher(source);PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("mailCollect.txt")));String mail;while(m.find()){mail = "[No." + num++ + "] " + m.group().toString();//System.out.println(mail);out.println(mail + "\n");}out.close();}private static int num = 1;}

result:



原创粉丝点击