您的位置:首页 > 编程语言 > Java开发

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

2013-03-21 22:17 841 查看
这个程序将从一个名为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:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: