删除文件Java中的注释

时间:2016-04-03 13:35:54

标签: java regex

我需要删除文件中的注释,例如:

/* this*/
/*this
*
*
*/
//And this

并写入另一个文件。 我用这个正则表达式:

 public String delComments(String input){
         String noComments = input.replaceAll("//.*|(\"(?:\\\\[^\"]|\\\\\"|.)*?\")|(?s)/\\*.*?\\*/", "$1 ");
        return noComments;

和阅读方法

String line = null;
    FileReader fileReader =
            new FileReader(filePath);
    BufferedReader bufferedReader =
            new BufferedReader(fileReader);
    FileWriter fw = new FileWriter(filePathNoComm);
    BufferedWriter bw = new BufferedWriter(fw);
    while((line = bufferedReader.readLine()) != null) {
       delComments(line);
        bw.write(line);
    }
    bw.close();

但它不起作用。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

请尝试以下代码段:

public static String delComments(String content){
    Pattern regex = Pattern.compile("/\\*.*?\\*/|/{2,}[^\\n]*", Pattern.DOTALL);

    Matcher matcher = regex.matcher(content);
    return matcher.replaceAll("");
}

它应删除所有评论。

我有示例输入文件:

package com.company;

/**
 * Created by XXX on 4/3/16.
 */

public class Test {
    // Will fix it later

    int x = 0; // declaration.
}

清洁后,它会发出:

package com.company;


public class Test {


    int x = 0; 
}