现在的位置: 首页 > 综合 > 正文

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

2018年05月24日 ⁄ 综合 ⁄ 共 1046字 ⁄ 字号 评论关闭

    要为项目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结果完全一样。用程序减轻了自己的工作量还是玩开心的!嘿嘿,知识的力量。

抱歉!评论已关闭.