Java正则表达式的多行匹配实战-将java文件中的单行和多行注释内容替换为空

来源:互联网 发布:电动剃须刀推荐 知乎 编辑:程序博客网 时间:2024/06/04 20:06

我们知道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();
  }
 }

 

 

原创粉丝点击