我们知道java中有三种注释方式
1. // 单行
2. /* .......*/ 单行 或多行
3. /** .......*/ 单行 或多行
我们的目的就是把以上三种特征的注释替换
以下是例子
String s = “。。。。。。。。”; // 将文件的内容赋值给s
Pattern pattern1 = Pattern.compile("//(.*)"); //特征是所有以双斜线开头的
Matcher matcher1 = pattern1.matcher(s);
s = matcher1.replaceAll(""); //替换第一种注释
Pattern pattern2 = Pattern.compile("/\\*(.*?)\\*/", Pattern.DOTALL); //特征是以/*开始,以*/结尾,Pattern.DOTALL的意思是糊涂模式,这种模式下.(点号)匹配所有字符
Matcher matcher2 = pattern2.matcher(s);
s = matcher2.replaceAll(""); //替换第二种注释
Pattern pattern3 = Pattern.compile("/\\*\\*(.*?)\\*/", Pattern.DOTALL); //特征是以/**开始,以*/结尾
Matcher matcher3 = pattern3.matcher(s);
s = matcher3.replaceAll(""); //替换第三种注释
System.out.println(s); //打印结果
public static void main(String[] args) {
File file = new File("BookServiceImpl.txt");
try {
String countent = FileUtils.readFileToString(file);
String patternStr = "private String whereHql.*\r*\n*return whereHql.{0,9}}";
Pattern pattern = Pattern.compile(patternStr, Pattern.DOTALL);
Matcher matcher = pattern.matcher(countent);
boolean matchFound = matcher.find(); // true
System.out.println(matchFound);
System.out.println(matcher.group());
} catch (IOException e) {
e.printStackTrace();
}
}