【问题标题】:replace string1 with string2 in many java files, only in comments在许多java文件中用string2替换string1,仅在注释中
【发布时间】:2011-06-30 17:08:17
【问题描述】:

我在数百个文件中完成了大约 3000 个替换实例。用 string2 替换所有出现的 string1 很容易。 IntelliJ 允许我替换“cmets 和字符串”中的所有出现。

问题是相同的字符串出现在 cmets 和真实代码中。我想只在评论部分限制替换(我们使用 /**/ 或 // 的组合)

任何库/IDE/脚本可以做到这一点?

【问题讨论】:

标签: perl intellij-idea replace read-eval-print-loop


【解决方案1】:
use Regexp::Common 'comment';
...
s/($RE{comment}{'C++'})/(my $x = $1) =~ s#string1#string2#g; $x/ge;

【讨论】:

    【解决方案2】:

    尝试使用以下正则表达式查找所有 cmets,然后替换您想要的内容:

    /(?>\/\*[^\*\/]*\*\/|\/\/([^\n])*\n)/
    

    第一部分\/\*[^\*\/]*\*\/ 尝试查找所有/**/ 对,其中找到以/* 开头的内容,然后包含除结束标记*/ 和包含结束标记*/ 之外的内容。

    另一部分检查以// 开头并转到endline(\n) 并且在([^\n]*) 之间包含非换行符的内容。

    因此它应该是所有cmets

    【讨论】:

      猜你喜欢
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 2010-12-18
      相关资源
      最近更新 更多