Java中利用正则表达式获取一个网页中的所有邮箱地址
package cn.tms.ui; import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.Writer; import java.net.URL; import java.net.URLConnection; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) throws Exception { // 在本地创建一个.txt文件 File file = new File("e://rz.txt"); // 链接到需要提取内容的网页 URL url = new URL("http://tieba.baidu.com/p/4529628420 "); // 打开连接 URLConnection conn = url.openConnection(); // 设置连接网络超时时间 conn.setConnectTimeout(1000 * 10); // 读取指定网络地址中的文件 (输入缓冲流) BufferedReader bufr = new BufferedReader(new InputStreamReader(conn.getInputStream())); // 将内容保存到text.txt文件中(输出缓冲流) Writer wt = new FileWriter(file, true); // 将字符流包装成缓冲流 PrintWriter pw = new PrintWriter(wt, true); String line = null; // 匹配email的正则 String regex = "[a-zA-Z0-9_-]+@\\w+\\.[a-z]+(\\.[a-z]+)?"; Pattern p = Pattern.compile(regex); while ((line = bufr.readLine()) != null) { Matcher m = p.matcher(line); while (m.find()) { // 写入到文件 pw.write(m.group()); // 获得匹配的email System.out.println(m.group()); } } // 刷新输出流 pw.flush(); // 先关闭输出流 pw.close(); // 关闭输入流 bufr.close(); } }