45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:怎么样正确使用Java正则表达式?

怎么样正确使用Java正则表达式?

2016-07-26 20:42:46 来源:www.45fan.com 【

怎么样正确使用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在正则表达式的使用,希望大家喜欢。


本文地址:http://www.45fan.com/bcdm/60351.html
Tags: 表达式 Java 抓取
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部