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

前端之家收集整理的这篇文章主要介绍了用正则表达式统计关键词信息前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

猜你在找的正则表达式相关文章