正则表达式找到一个未注释的println

时间:2011-03-21 07:21:29

标签: regex eclipse find

有人可以共享一个正则表达式,在java代码中找不到双重评论的println吗?

示例:

System.out.println("MATCH")   /*this line match*/
//    System.out.println("DOESN'T MATCH")  /*this line doesn't match*/

(我正在使用这个正则表达式抛出日食搜索对话框)

2 个答案:

答案 0 :(得分:8)

好的,正如我已经提到的,正则表达式不是正确的工具,所以如果您最终使用我的建议,请务必备份您的来源!

以下正则表达式匹配其中包含System.out.print的单行,without ///*之前(在同一行!)。

(?m)^((?!//|/\*).)*System\.out\.print.*

或简单地说:

(?m)^[ \t]*System\.out\.print.*

然后可以替换为:

//$0

发表评论。

再说一遍:多行注释会出错,正如Kobi所提到的那样,像/* // */ System.out.print...这样的东西只列出了这个正则表达式将会绊倒的众多案例中的两个。

还要考虑以下几行:

System.out.println("..."); /*
comments
*/

你不想最终:

//System.out.println("..."); /*
comments
*/

答案 1 :(得分:-2)

你可能只是做一些简单的事情:

^[ \t]*[^/][^/].*println.*