java压缩html

 [\s\S]*是完全通配的意思;

“[ ]”是范围描述符。

\s是指空白,包括空格、换行、tab缩进等所有的空白,而\S刚好相反,这样一正一反下来,就表示所有的字符,完全的,一字不漏的。

另外,[]这个符号,表示在它里面包含的单个字符不限顺序的出现,比如:

[ace]*---这表示,只要出现a/c/e这三个任意的字母,都会被匹配;

[\s]---表示,只要出现空白就匹配;

[\S]---表示,非空白就匹配;

表示所有组合都是相应的,有[\w\W]等,意义完全相同。

还有一点,有"."这个通配符了的原因是:

原因是因为"."是不会匹配换行的,所有出现有换行匹配的时候,使用[\s\S]或者[\w\W]这样的完全通配模式。

 

File file = new File("D:\\test\\test\\dist\\electron\\static\\pdfjs\\web\\viewer.html");
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null){
     sb.append(line);
}
reader.close();

// 去除注释
String htmlStr = sb.toString().replaceAll("<!--[\s\S]*?-->","");// 去除回车
htmlStr = htmlStr.replaceAll("\\n","");

// 去除>后面的空格
htmlStr = htmlStr.replaceAll(">\\s+", ">");
// 去除<前面的空格
htmlStr = htmlStr.replaceAll("\\s+<", "<");


System.out.println(htmlStr);

File file1 = new File("D:\\test\\test\\dist\\electron\\static\\pdfjs\\web\\viewer-min.html");
FileWriter writer = new FileWriter(file1);
writer.write(htmlStr);
writer.close();

 

posted @ 2021-06-30 11:09  荣超  阅读(307)  评论(0编辑  收藏  举报