Java 使用正则表达式从文件中解析出所有email地址_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java 使用正则表达式从文件中解析出所有email地址

Java 使用正则表达式从文件中解析出所有email地址

 2013/10/16 15:44:23  413899327  程序员俱乐部  我要评论(0)
  • 摘要:importjava.io.File;importjava.io.IOException;importjava.util.regex.Matcher;importjava.util.regex.Pattern;importorg.apache.commons.io.FileUtils;/***提取邮件地址*@authorRogerFederer*@date2013-10-16下午13:27:00*/publicclassEmailParser
  • 标签:使用 文件 Java 正则表达式 表达式 解析 正则


class="java">
import java.io.File;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.io.FileUtils;

/**
 * 提取邮件地址
 * @author Roger Federer
 * @date 2013-10-16 下午13:27:00
 */
public class EmailParser {
	
	private final static Pattern emailer = Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+");
	
	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		//String txt = FileUtils.readFileToString(new File(args[0]));
		String txt = "test@sina.comtest@sina.com test@sina.com test1@sina.com test@sina.com xxxx@sina.com,test@sina.com";
		//System.out.println(txt);
		Matcher matchr = emailer.matcher(txt);
		while (matchr.find()) {
			String email = matchr.group();
			System.out.println(email);
		}
		
		Matcher matcher = emailer.matcher(txt);
		String matchecText = null;
		int matchedFrom = 0;
		int matchedTo = 0;
		while (matcher.find()) {
			matchecText = matcher.group();
			matchedFrom = matcher.start();
			matchedTo = matcher.end();
			System.out.println("matched [" + matchecText + "] from [" + matchedFrom + "] to [" + matchedTo + "]" );
		}
	}

}


运行结果:
test@sina.comtest
test@sina.com
test1@sina.com
test@sina.com
xxxx@sina.com
test@sina.com
matched [test@sina.comtest] from [0] to [17]
matched [test@sina.com] from [27] to [40]
matched [test1@sina.com] from [41] to [55]
matched [test@sina.com] from [56] to [69]
matched [xxxx@sina.com] from [70] to [83]
matched [test@sina.com] from [84] to [97]
发表评论
用户名: 匿名