在许多java文件中将string1替换为string2,仅在注释中

发布于 2024-11-18 01:53:15 字数 221 浏览 2 评论 0原文

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

问题是注释和实际代码中出现相同的字符串。我想限制仅在注释部分进行替换(我们使用 /**/ 或 // 的混合)

任何可以执行此操作的库/IDE/脚本吗?

I have around 3000 instance of replacement done in hundreds of files. Replacing all occurance of string1 with string2 was easy. IntelliJ allows me to replace all occurences in "comments and strings".

The problem is that the same string appear in comments and real code. I would like restrict the replacement only in comment section ( we use mix of /**/ or // )

Any library/IDE/script that can do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

故笙诉离歌 2024-11-25 01:53:15
use Regexp::Common 'comment';
...
s/($RE{comment}{'C++'})/(my $x = $1) =~ s#string1#string2#g; $x/ge;
use Regexp::Common 'comment';
...
s/($RE{comment}{'C++'})/(my $x = $1) =~ s#string1#string2#g; $x/ge;
无力看清 2024-11-25 01:53:15

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

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

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

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

因此应该所有评论

Try using the following regex to find all comments, and then replace what you want afterwards:

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

The first part \/\*[^\*\/]*\*\/ Tries to find all /**/ pairs where it finds something that starts with /* and then contains something other than end tag */ and the contains end tag */.

THe other part checks something that starts with // and goes to endline(\n) and contains something not newline between ([^\n]*).

Thus it should all comments

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文