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

Hei*_*bug 4 regex eclipse find

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

例:

System.out.println("MATCH")   /*this line match*/
//    System.out.println("DOESN'T MATCH")  /*this line doesn't match*/
Run Code Online (Sandbox Code Playgroud)

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

Bar*_*ers 8

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

下面的正则表达式有一行匹配System.out.print它,without ///*之前(在同一行!).

(?m)^((?!//|/\*).)*System\.out\.print.*
Run Code Online (Sandbox Code Playgroud)

或者干脆:

(?m)^[ \t]*System\.out\.print.*
Run Code Online (Sandbox Code Playgroud)

然后可以替换为:

//$0
Run Code Online (Sandbox Code Playgroud)

评论它.

再说一遍:多行评论会出错,而正如Kobi所提到的那样/* // */ System.out.print...,这个正则表达式会绊倒的众多案例中只有两个.

还考虑一下:

System.out.println("..."); /*
comments
*/
Run Code Online (Sandbox Code Playgroud)

你不想最终得到:

//System.out.println("..."); /*
comments
*/
Run Code Online (Sandbox Code Playgroud)