Java - 在代码中查找注释的正则表达式
这次使用Java有点乐趣。我想编写一个从标准输入(例如,逐行)读取代码的程序,例如:
// some comment
class Main {
/* blah */
// /* foo
foo();
// foo */
foo2();
/* // foo2 */
}
查找其中的所有注释并将其删除。我正在尝试使用正则表达式,现在我已经做了这样的事情:
private static String ParseCode(String pCode)
{
String MyCommentsRegex = "(?://.*)|(/\\*(?:.|[\\n\\r])*?\\*/)";
return pCode.replaceAll(MyCommentsRegex, " ");
}
但它似乎不适用于所有情况,例如:
System.out.print("We can use /* comments */ inside a string of course, but it shouldn't start a comment");
与正则表达式不同的任何建议或想法?提前致谢。