在IntelliJ全局搜索中排除搜索结果中的注释?

时间:2014-01-09 19:14:03

标签: search intellij-idea find comments

我发现语法错误“它是”在一个大型项目的一页上占有欲。我正试图在页面上搜索其他任何用法来纠正它,但我得到的结果包含数百条评论。我只想过滤项目中面向用户的重要部分。有没有办法从全局搜索结果中排除注释?

2 个答案:

答案 0 :(得分:3)

在较新的版本中,至少在PyCharm 2018中(类似于IntelliJ),有一个过滤器选项“除了注释”,如下所示:

screenshot of find-in-path dialog with filter options

(单击小的过滤器图标以显示下拉列表。)

注意:选定的过滤器选项在会话期间仍然存在,除非打开下拉列表,否则活动的过滤器选项不会立即显现。为防止意外限制后续搜索,之后最好切换回“任意位置”。

另一种方法是在搜索对话框中启用“正则表达式”(或“ Regex”)复选框,然后使用某种否定性环顾四周排除注释。

在一种情况下,我需要从搜索中排除带有单行注释的行(例如# this is a comment),而不是包含内嵌注释的行(例如a=b+1 # this is an inline comment)。以下是技巧,搜索something(对于Python注释,以#开头):

^((?!#).)*something.*$

请注意,我不是正则表达式专家,因此可以大大改进此正则表达式模式,但它可以说明这一想法。您可以在regex101上进行操作。当然,欢迎提出任何改进模式的评论。

请注意,是否可以将此方法扩展到多行注释。 (如""" several lines here """中一样。)

答案 1 :(得分:0)

在没有真正查看代码的情况下很难提出建议但是因为它看起来像是一次性的事情,我会在评论中使用全局搜索来临时用一些#temporary-token#替换“它”,然后使用到处都是全球搜索,你应该把剩下的东西都拿走。然后回滚临时令牌以进行注释。应该很容易尝试使用VCS。只是一个想法。

enter image description here

如您所见,使用“仅限评论”选项,只能找到一个#token。

enter image description here