【发布时间】:2013-08-14 11:11:36
【问题描述】:
这次用 Java 有点乐趣。我想编写一个从标准输入(例如逐行)读取代码的程序,例如:
// some comment
class Main {
/* blah */
// /* foo
foo();
// foo */
foo2();
/* // foo2 */
}
找到其中的所有 cmets 并将其删除。我正在尝试使用正则表达式,现在我已经做了这样的事情:
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");
有任何与正则表达式不同的建议或想法吗? 提前致谢。
【问题讨论】:
-
我认为你的确切例子很糟糕:字符串内的关闭评论将关闭评论。但是,不在注释中的字符串中的打开注释不会开始。
-
是的,我的错。我试图在这里给出一些棘手的东西并欺骗自己。
-
如果您能在尝试后将其合并并放入答案中,我将不胜感激。我也在寻找类似的解决方案
-
@Ravisha,我刚看到你的评论。我会寻找我的代码,因为它只是一个一次性任务,如果我找到了,就把它贴在这里。
-
@brovor.. 很高兴看到回复...在此先感谢 BTW:)
标签: java regex search comments