• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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在正则表达式的使用,希望大家喜欢。

    您可能感兴趣的文章:
    • Java正则表达式入门基础篇(新手必看)
    • Java正则表达式基础入门知识
    • 在Java编程中使用正则表达式的基本方法
    上一篇:Java正则表达式基础入门知识
    下一篇:深入浅出解析正则表达式-替换原则
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    Java正则表达式使用 Java,正则,表达式,使用,Java,