首先获取源文件,然后利用正则匹配相关的数据,匹配到的数据用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<String> 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;
}