读取本地文件的邮箱地址

首先获取源文件,然后利用正则匹配相关的数据,匹配到的数据用compile方法封装,
然后进行判断是否为空,然后用find方法去寻找匹配到的数据
找到后则用group方法返回到子序列,主程序利用getFile方法获取到数据
用增强for循环赋值给youxiang打印出来

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GetEmail {

/**
 * @param args
 * @throws FileNotFoundException 
 * @throws IOException 
 */

解析第一步:创建list集合接受获取到的文件流数据,运用for循环将其打印。

public static void main(String[] args) {

	List list = getFile();
	for(String youxiang : list){
		System.out.println(youxiang);
	}
}



解析第二步:创建BufferedReader流读取文件的数据,创建一个正则匹配获取

到的数据,匹配规则用\转义字符匹配字母为w的字符,然后用+号匹配一个或者
多个再创建字符组匹配任意字符,最后用+号匹配剩余数据。

public static List getFile() {

BufferedReader bufr = null;

	try {
		bufr = new BufferedReader(new FileReader("F:\\youxiang.txt"));
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}	

String youxiang_regex = “\w+\w+(\.\w+)+”;

//创建List集合

List list = new ArrayList();

//使用Pattern封装正则匹配的邮箱地址
Pattern p = Pattern.compile(youxiang_regex);

//初始化变量value
String value = null;

//用while循环遍历,循环条件为value不为空时,读取数据
try {
while((line=bufr.readLine())!=null){

	//使用Matcher匹配器接受value值
			Matcher m = p.matcher(line);

//用while循环遍历m值,如果找到f,转换成group形式返回给list
while(m.find()){

				list.add(m.group());
			}

}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

	return list;
}

读取本地文件的邮箱地址_第1张图片

你可能感兴趣的:(后端)