Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 记事本++多行正则表达式替换仅替换第一行_Regex_Notepad++_Multiline - Fatal编程技术网

Regex 记事本++多行正则表达式替换仅替换第一行

Regex 记事本++多行正则表达式替换仅替换第一行,regex,notepad++,multiline,Regex,Notepad++,Multiline,我想用一个regex replace all操作注释掉大量多行日志语句 我的[可能]多行语句如下所示: logger.info( "Log Message: [" + myVariable + "] is has a value of: [" + myVariable.getValue() + " ]" + LogColors.ANSI_RESET ); 下面的正则表达式语句带有。匹配启用的换行符成功查找并选择所有适当的行,直到结束分号 (logger\..+?\);) 但

我想用一个regex replace all操作注释掉大量多行日志语句

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

logger.info( "Log Message: [" + myVariable 
    + "] is has a value of: [" + myVariable.getValue() + " ]"
    + LogColors.ANSI_RESET );
下面的正则表达式语句带有。匹配启用的换行符成功查找并选择所有适当的行,直到结束分号

(logger\..+?\);)
但是,当我尝试用以下内容替换所有内容时:

// \1
仅替换带标记的封闭表达式的第一行。所以我只剩下这个编译器不友好的多行语句:

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

如果你能做出像/*sth*/这样的评论,我建议:

(?<!/\* )logger\..+?\);(?! \*/)

如果你能做出像/*sth*/这样的评论,我建议:

(?<!/\* )logger\..+?\);(?! \*/)

不要试图将所有内容强制放在一行注释中,而是尝试使其成为多行注释。将其替换为/*\1*/。您的正则表达式是相同的,但它消除了编译器讨厌它的问题

这还有保持代码相同的优点,这样在取消注释时不会丢失格式,这通常会使代码更易于阅读


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

与其将所有内容强制编入单行注释,不如将其改为多行注释。将其替换为/*\1*/。您的正则表达式是相同的,但它消除了编译器讨厌它的问题

这还有保持代码相同的优点,这样在取消注释时不会丢失格式,这通常会使代码更易于阅读


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

这很聪明。但是他的语言必须支持它。@AmitJoki我很有信心这种语言是Java,所以它可能会工作。这种语言是Java!我甚至没有想过使用多行注释。这种方法将使反向操作更容易,同时也可以取消日志记录语句的注释。但是他的语言必须支持它。@AmitJoki我很有信心这种语言是Java,所以它可能会工作。这种语言是Java!我甚至没有想过使用多行注释。这种方法将使反向操作更容易,同时也可以取消对日志语句的注释。