Notepad++ 多行正则表达式替换只替换第一行
Notepad++ multi-line regex replacement only replacing first line
我想注释掉大量的多行日志记录语句,用单个正则表达式替换所有操作。
我的[可能]多行语句如下所示:
logger.info( "Log Message: [" + myVariable
+ "] is has a value of: [" + myVariable.getValue() + " ]"
+ LogColors.ANSI_RESET );
以下正则表达式语句(启用 . 匹配换行符)成功找到(并选择)所有适当的行,直到结束分号。
(logger\..+?\);)
然而,当我尝试将所有内容替换为:
//
仅替换了我标记的封闭表达式 ()
的第一行。所以我留下了这个编译器不友好的多行语句:
// logger.info( "Log Message: [" + myVariable
+ "] is has a value of: [" + myVariable.getValue() + " ]"
+ LogColors.ANSI_RESET );
如果你能发表像/* sth */这样的评论我会建议:
(?<!/\* )logger\..+?\);(?! \*/)
并替换为:
/* [=11=] */
与其尝试将所有内容强制放入单行注释,不如尝试将其设为多行。将其替换为 /* */
。你的正则表达式是一样的,但它消除了编译器讨厌它的问题。
这样做的另一个好处是可以使代码保持一致,这样当您取消注释时就不会丢失格式(这通常会使代码更易于阅读)。
注意:如果这不是 Java,请将 /* */
替换为相关的多行。
我想注释掉大量的多行日志记录语句,用单个正则表达式替换所有操作。
我的[可能]多行语句如下所示:
logger.info( "Log Message: [" + myVariable
+ "] is has a value of: [" + myVariable.getValue() + " ]"
+ LogColors.ANSI_RESET );
以下正则表达式语句(启用 . 匹配换行符)成功找到(并选择)所有适当的行,直到结束分号。
(logger\..+?\);)
然而,当我尝试将所有内容替换为:
//
仅替换了我标记的封闭表达式 ()
的第一行。所以我留下了这个编译器不友好的多行语句:
// logger.info( "Log Message: [" + myVariable
+ "] is has a value of: [" + myVariable.getValue() + " ]"
+ LogColors.ANSI_RESET );
如果你能发表像/* sth */这样的评论我会建议:
(?<!/\* )logger\..+?\);(?! \*/)
并替换为:
/* [=11=] */
与其尝试将所有内容强制放入单行注释,不如尝试将其设为多行。将其替换为 /* */
。你的正则表达式是一样的,但它消除了编译器讨厌它的问题。
这样做的另一个好处是可以使代码保持一致,这样当您取消注释时就不会丢失格式(这通常会使代码更易于阅读)。
注意:如果这不是 Java,请将 /* */
替换为相关的多行。