开博好久了,今天第一次发表技术文档,之前总是将一些好的事例保存在电脑,时间久了找起来也很麻烦,所以还是放在博客里进行归类比较方便,这样也能将自己在学习过程中的一些心得体会分享给大家,也能给需要的人一点帮助。

一个朋友需要我帮忙给写一个能够提取网页中Email地址的小程序,所以就用Java语言帮他做了一个,有不完善的地方还请大家谅解,并提出来,一起学习。

源代码详见附件!加压后将将readme.htm放在F:\\share\\readme.htm,也可自定义目录,自定义目录需要修改对应的代码文件路径。源代码.rar

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern; /**
* email小爬虫
* @author xiaoxin
* @date 2014/10/29
*/
public class EmailSpider {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new FileReader("F:\\share\\readme.htm"));
BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\share\\email.txt"));
String line = "";
while((line = br.readLine()) != null) {
parse(line, bw);
}
bw.flush();
bw.close();
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 解析Email的方法
* @param line 按行过滤
* @param bw 输出到email.txt
*/
private static void parse(String line, BufferedWriter bw) {
Pattern p = Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+");
Matcher m = p.matcher(line);
try {
while(m.find()) {
bw.write(m.group() + ";\r\n"); //换行显示,适用于windows、Linux下为\r、Mac下为\n
// bw.newLine();//建议用这个换行
System.out.println(m.group());
}
} catch (IOException e) {
e.printStackTrace();
System.exit(-1);
}
}
}

最新文章

  1. C++ 简单字符串加解密(转载)
  2. CentOS 6.5 安全加固及性能优化 (转)
  3. 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox
  4. eclipse设置显示代码行数(转)
  5. 百度地图API示例之设置地图显示范围
  6. 阿里云大数据三次技术突围:Greenplum、Hadoop和“飞天”
  7. Struts2 中的值栈的理解
  8. PV 并发量的计算
  9. Flink资料(4) -- 类型抽取和序列化
  10. SAP HANA procudure 创建用户
  11. mysql数据库实操笔记20170418
  12. 转换时间对象和字符串对象&添加时间
  13. LR使用web_add_cookie函数进行cookie模拟
  14. C#多线程与并行编程方面的电子书,中英文版本
  15. SQL SERVER 打开脚本报“未能完成操作,存储空间不足”
  16. spring整合redis(哨兵模式)
  17. java的instanceof关键字
  18. RN环境的搭建
  19. No MaterialLocalizations found (Flutter)
  20. Java 訪问权限控制:你真的了解 protected keyword吗?

热门文章

  1. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求
  2. 【小程序分享篇 二 】web在线踢人小程序,维持用户只能在一个台电脑持登录状态
  3. 在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误
  4. EntityFramework Core 1.1是如何创建DbContext实例的呢?
  5. jQuery学习之路(6)- 简单的表格应用
  6. 算法与数据结构(七) AOV网的拓扑排序
  7. spring remoting源码分析--Hessian分析
  8. PHP之使用网络函数和协议函数
  9. ls: 无法访问/usr/sbin/smartctl: 没有那个文件或目录
  10. WebGIS中等值面展示的相关方案简析