有人可以共享一个正则表达式,在
java代码中发现所有不是双重评论的println吗?
例:
System.out.println("MATCH") /*this line match*/ // System.out.println("DOESN'T MATCH") /*this line doesn't match*/
(我正在使用这个正则表达式抛出eclipse搜索对话框)
解决方法
好的,正如我已经提到的,正则表达式不是正确的工具,所以如果您最终使用我的建议,请务必备份您的来源!
以下正则表达式匹配其中包含System.out.print的单行,没有//或/ *之前(在同一行!).
(?m)^((?!//|/\*).)*System\.out\.print.*
或者干脆:
(?m)^[ \t]*System\.out\.print.*
然后可以替换为:
//$0
评论它.
再说一遍:多线注释会出错,正如Kobi所提到的那样,像/ * // * / System.out.print这样的东西只列举了这个正则表达式中的两个案例.
还考虑一下:
System.out.println("..."); /* comments */
你不想最终得到:
//System.out.println("..."); /* comments */