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



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 = "[email protected]@sina.com [email protected] [email protected] [email protected] [email protected],[email protected]";
		//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 + "]" );
		}
	}

}


运行结果:
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
matched [[email protected]] from [0] to [17]
matched [[email protected]] from [27] to [40]
matched [[email protected]] from [41] to [55]
matched [[email protected]] from [56] to [69]
matched [[email protected]] from [70] to [83]
matched [[email protected]] from [84] to [97]

你可能感兴趣的:(java,正则表达式)