Notepad ++多行正则表达式替换只替换第一行

Nat*_*tie 1 regex notepad++ multiline

我想用一个正则表达式替换所有操作来注释掉大量的多行日志记录语句.

我的[可能]多行语句如下所示:

logger.info( "Log Message: [" + myVariable 
    + "] is has a value of: [" + myVariable.getValue() + " ]"
    + LogColors.ANSI_RESET );
Run Code Online (Sandbox Code Playgroud)

以下正则表达式语句(使用.匹配新行启用)成功查找(并选择)所有适当的行,直到结束分号.

(logger\..+?\);)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将所有替换为:

// \1
Run Code Online (Sandbox Code Playgroud)

()替换了我标记的封闭表达式的第一行.所以我留下了这个编译器不友好的多行语句:

// logger.info( "Log Message: [" + myVariable 
    + "] is has a value of: [" + myVariable.getValue() + " ]"
    + LogColors.ANSI_RESET );
Run Code Online (Sandbox Code Playgroud)

Fun*_*uit 5

不要试图强迫所有内容成为单行注释,而是尝试使其成为多行注释.替换为/* \1 */.你的正则表达式是一样的,但它消除了编译器讨厌它的问题.

这也具有保持代码相同的优点,因此当您取消注释它时,您不会丢失格式(这通常会使代码更易于阅读).

注意:如果这不是Java,请替换/* */为相关的多行.

  • 这很聪明.但他的语言必须支持它. (2认同)