【问题标题】:Search eclipse workspace where string not starting with搜索字符串不以开头的 Eclipse 工作区
【发布时间】:2012-12-03 18:13:19
【问题描述】:

在 Eclipse 工作区搜索 (CTRL+H) 中,可以使用什么正则表达式来查找不以 2 个前导正斜杠 (/) 开头的单词的出现 - 或者换句话说,没有注释?

例如//var_dump// var_dump是不匹配的,而var_dump是匹配的。

【问题讨论】:

    标签: regex eclipse


    【解决方案1】:

    文件搜索选项卡中的以下正则表达式可以做到这一点:

    (?<!//)[ \t]*var_dump
    

    如果您只关心一行中的第一个单词,请在其前面加上一个插入符号:

    ^(?<!//)[ \t]*var_dump
    

    (?&lt;!//) 部分是一个否定的后视 - 它只匹配在您正在寻找的东西之前有括号内容的东西。

    但是,如果您要查找没有注释的变量,而不是前面没有特定组合“//”的变量,则最好使用语法感知搜索,这取决于所使用的语言。例如,此正则表达式仍将匹配 /* var_dump */,您可能希望也可能不希望发生这种情况。语法感知搜索会知道这已被注释。

    如果您查看“搜索”窗口,您将看到“Java 搜索”选项卡和您可能拥有的其他插件的选项卡(例如,我有“C/C++ 搜索”和“Git 搜索”)。在这些选项卡中,您可以选择仅搜索函数、变量、类或在该语言中有意义的任何其他内容。

    您可能想要的另一件事是在一个单词上按 Ctrl-Shift-G,它会列出对此的所有引用代码中的对象 - 在尝试追踪调用函数或使用变量的内容时非常有用。

    【讨论】:

    • 效果很好!这次我不太关心语法感知搜索。我希望有一个这样的快捷方式可以搜索工作集而不是工作区。感谢您的信息
    • 如果您指的是参考搜索,您也可以右键单击并选择 References -> Working Set...。您还可以在“工作集中的引用”下的 Preferences -> General -> Keys 中分配快捷键。
    • 乍一看还以为是ctrl+alt+g,真的好用,谢谢!
    • Ctrl+alt+g 是原始文本搜索,因此搜索“myfunc”将找到该文本的所有实例,包括“myfunc1”和“//comment about myfunc”。 Ctrl+Shift+g 仅查找实际引​​用该确切事物的代码(因此没有 cmets 或“myfunc1”)
    • 不幸的是 Ctrl+Shift+G 仅适用于当前文件而不适用于工作集/工作区,我需要一个组合。很好的信息,谢谢:)
    【解决方案2】:

    如果您要查找变量名称(或任何其他类型的 Java 元素的名称),您可以使用 Java 搜索而不是文件搜索。您没有正则表达式支持,但搜索知道您正在寻找变量/类名,因此您不必担心周围的语法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-25
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      • 2018-01-11
      • 1970-01-01
      相关资源
      最近更新 更多