站长资讯网
最全最丰富的资讯网站

Java正则表达式使用

一:抓取网页中的Email地址

利用正则表达式匹配网页中的文本

复制代码 代码如下:
[\w[.-]]+@[\w[.-]]+\.[\w]+

将网页内容分割提取

  import java.io.BufferedReader;  import java.io.FileNotFoundException;  import java.io.FileReader;  import java.io.IOException;  import java.util.regex.Matcher;  import java.util.regex.Pattern;  public class EmailSpider {    public static void main(String[] args) {      try {        BufferedReader br = new BufferedReader(new FileReader("C:\emailSpider.html"));        String line = "";        while((line=br.readLine()) != null) {          parse(line);        }      } catch (FileNotFoundException e) {        e.printStackTrace();      } catch (IOException e) {        e.printStackTrace();      }    }    private static void parse(String line) {      Pattern p = Pattern.compile("[\w[.-]]+@[\w[.-]]+\.[\w]+");      Matcher m = p.matcher(line);      while(m.find()) {        System.out.println(m.group());      }    }  }

打印结果:

867124664@qq.com
260678675@QQ.com
806208721@qq.com
hr_1985@163.com
32575987@qq.com
qingchen0501@126.com
yingyihanxin@foxmail.com
1170382650@qq.com
1170382650@qq.com
yingyihanxin@foxmail.com
qingchen0501@126.com
32575987@qq.com
hr_1985@163.com

现在你找到这么多邮箱地址,用上JavaMail的知识,你可以群发垃圾邮件了,呵呵!!!

二:代码统计

  import java.io.BufferedReader;  import java.io.File;  import java.io.FileNotFoundException;  import java.io.FileReader;  import java.io.IOException;  public class CodeCounter {    static long normalLines = 0;//正常代码行    static long commentLines = 0;//注释行    static long whiteLines = 0;//空白行    public static void main(String[] args) {      //找到某个文件夹,该文件夹下面在没有文件夹,这里没有写递归处理不在同一文件夹的文件      File f = new File("E:\Workspaces\eclipse\Application\JavaMailTest\src\com\java\mail");      File[] codeFiles = f.listFiles();      for(File child : codeFiles){        //只统计java文件        if(child.getName().matches(".*\.java$")) {          parse(child);        }      }      System.out.println("normalLines:" + normalLines);      System.out.println("commentLines:" + commentLines);      System.out.println("whiteLines:" + whiteLines);    }    private static void parse(File f) {      BufferedReader br = null;      //表示是否为注释开始      boolean comment = false;      try {        br = new BufferedReader(new FileReader(f));        String line = "";        while((line = br.readLine()) != null) {          //去掉注释符/*前面可能出现的空白          line = line.trim();          //空行 因为readLine()将字符串取出来时,已经去掉了换行符n          //所以不是"^[\s&&[^\n]]*\n$"          if(line.matches("^[\s&&[^\n]]*$")) {            whiteLines ++;          } else if (line.startsWith("/*") && !line.endsWith("*/")) {            //统计多行/*****/            commentLines ++;            comment = true;            } else if (line.startsWith("/*") && line.endsWith("*/")) {            //统计一行/**/            commentLines ++;          } else if (true == comment) {            //统计*/            commentLines ++;            if(line.endsWith("*/")) {              comment = false;            }          } else if (line.startsWith("//")) {            commentLines ++;          } else {            normalLines ++;          }        }      } catch (FileNotFoundException e) {        e.printStackTrace();      } catch (IOException e) {        e.printStackTrace();      } finally {        if(br != null) {          try {            br.close();            br = null;          } catch (IOException e) {            e.printStackTrace();          }        }      }    }  }

以上内容就是本文给大家分享的Java在正则表达式的使用,希望大家喜欢。

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号