我需要删除文件中的注释,例如:
/* 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();
但它不起作用。 我做错了什么?
答案 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;
}