[Java] 正则表达式 02 EmailSpider 抓邮件, CodeCounter 统计程序有效代码行数
2014-01-17 12:31
627 查看
EmailSpider.java
CodeCounter.java
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("D:\\share\\EmailHtm\\email.htm")); String line = ""; while((line=br.readLine()) != null) { parse(line); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block 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()); } } }
CodeCounter.java
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("D:\\share\\JavaProjects\\CodeCounter\\src"); File[] codeFiles = f.listFiles(); for(File child : codeFiles){ 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) { // readLine() 已经吃掉了后面的换行符号 line = line.trim(); 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] 正则表达式 02 EmailSpider 抓邮件, CodeCounter 统计程序有效代码行数
- java正则表达式例程 提取网页中的email 统计代码的空行 有效代码行 注释行
- vs2005用正则表达式统计有效代码行数
- java 统计程序项目下面所有Java类的个数和有效代码行数的递归算法
- 利用正则表达式统计某个某个文件夹下所有java文件的 空格行数、注释行数、和代码行数
- 统计*.Java文件代码行数——正则表达式
- java 正则表达式2 通过正则表达式统计代码行数
- vs2005用正则表达式统计有效代码行数
- 利用正则表达式获取特定文件(如java class)并对其进行处理(如代码统计)
- 利用Visual Studio的搜索功能和正则表达式统计代码行数
- vs利用正则表达式统计代码行数
- Visual Studio中使用正则表达式快速统计项目总共代码行数
- 利用正则表达式统计代码中的(代码行数,注释行数,空白行数)利用正则表达式获取一个网页中所有的邮箱地址
- 统计文件夹下java代码行数的小程序--主要是学习任务队列的思想
- [编写高质量代码:改善java程序的151个建议]建议57 推荐在复杂字符串操作中使用正则表达式
- [转]利用正则表达式,统计代码行数。
- Java正则表达式(三)、代码量统计工具(统计java源文件中注释、代码、空白行数量)
- Java正则表达式学习笔记,分离网页邮件地址的蜘蛛程序
- 统计Java程序代码行数(Java)