用正则表达式统计关键词信息

来源:互联网 发布:逆战g数据异常规范游戏 编辑:程序博客网 时间:2024/05/16 15:34

    要为项目150余个代码点添加统一监控。监控点的key是按规律定义的,以chat3打头,alert结尾。我必须先把这150余个key从代码中搜索出来,然后在统一监控中按key逐个添加监控。如果用Eclipse自带的搜索功能搜索文本,可以,但是必须逐个去文件夹树里找,略显麻烦。

    

    324/2,一共162个监控点,逐个点进去找到自己要的信息实在太麻烦!

    为什么不写代码统计呢?!深搜文件树+正则表达式匹配文本就行了。

    10分钟敲完代码!

public class Test {public static int cnt = 0;public static void main(String[] args){File file = new File("F:\\IMChat3.0\\3.0");Pattern pattern = Pattern.compile("chat3.+(?!chat3).+alert");dfs(file, pattern);System.out.println("一共" + cnt + "个匹配项");}public static void dfs(File file, Pattern p){//深搜文件夹树File[] fs = file.listFiles();for(File f : fs){if(f.isDirectory()){dfs(f, p);}else if(f.isFile() && f.getName().endsWith("java")){try {BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f), "UTF-8"));//工程用到的文件编码,不用编码读取文件,就是GBK编码,会乱码。String line = null;while( (line = br.readLine()) != null){Matcher matcher = p.matcher(line);if(matcher.find()){System.out.println(matcher.group());++ cnt;}}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}}}

    程序运行结果如下:


    程序结果和Eclipse的Search结果完全一样。用程序减轻了自己的工作量还是玩开心的!嘿嘿,知识的力量。

原创粉丝点击