【发布时间】:2012-12-03 18:13:19
【问题描述】:
在 Eclipse 工作区搜索 (CTRL+H) 中,可以使用什么正则表达式来查找不以 2 个前导正斜杠 (/) 开头的单词的出现 - 或者换句话说,没有注释?
例如//var_dump和// var_dump是不匹配的,而var_dump是匹配的。
【问题讨论】:
在 Eclipse 工作区搜索 (CTRL+H) 中,可以使用什么正则表达式来查找不以 2 个前导正斜杠 (/) 开头的单词的出现 - 或者换句话说,没有注释?
例如//var_dump和// var_dump是不匹配的,而var_dump是匹配的。
【问题讨论】:
文件搜索选项卡中的以下正则表达式可以做到这一点:
(?<!//)[ \t]*var_dump
如果您只关心一行中的第一个单词,请在其前面加上一个插入符号:
^(?<!//)[ \t]*var_dump
(?<!//) 部分是一个否定的后视 - 它只匹配不在您正在寻找的东西之前有括号内容的东西。
但是,如果您要查找没有注释的变量,而不是前面没有特定组合“//”的变量,则最好使用语法感知搜索,这取决于所使用的语言。例如,此正则表达式仍将匹配 /* var_dump */,您可能希望也可能不希望发生这种情况。语法感知搜索会知道这已被注释。
如果您查看“搜索”窗口,您将看到“Java 搜索”选项卡和您可能拥有的其他插件的选项卡(例如,我有“C/C++ 搜索”和“Git 搜索”)。在这些选项卡中,您可以选择仅搜索函数、变量、类或在该语言中有意义的任何其他内容。
您可能想要的另一件事是在一个单词上按 Ctrl-Shift-G,它会列出对此的所有引用代码中的对象 - 在尝试追踪调用函数或使用变量的内容时非常有用。
【讨论】:
如果您要查找变量名称(或任何其他类型的 Java 元素的名称),您可以使用 Java 搜索而不是文件搜索。您没有正则表达式支持,但搜索知道您正在寻找变量/类名,因此您不必担心周围的语法。
【讨论】: