【问题标题】:Eclipse search result in specific method具体方法中的Eclipse搜索结果
【发布时间】:2014-03-03 11:01:01
【问题描述】:

在 Eclipse File Search 中,您可以搜索“包含文本”并使用“文件名模式”过滤结果。例如,如果您使用文件名模式“My*.java”搜索setValue(int x),您将在名为MyGame.java 的文件中找到setValue(int x) 方法,但在名为YourGame.java 的文件中找不到。现在我需要一种方法来过滤搜索以仅显示特定方法的结果。例如,如果我有 10 个类覆盖同一超类的 init() 方法和 reset() 方法。在init()reset() 内部,setValue(int x) 被调用。现在我想搜索所有出现的setValue(int x),但只在init() 方法内。有没有办法做到这一点?可能使用正则表达式还是 Eclipse 有这样的方法? 谢谢

【问题讨论】:

  • 一些与我的问题here 相关的内容。你可能会从中得到一些线索。

标签: java regex eclipse search


【解决方案1】:

我发现了一个或多或少可行的表达方式:

(?s)methodname.*(?-s)set.*parma1, param2

让我解释一下:

  • “。” (DOT) 代表 1 个字符,除了“\n”(换行符)
  • “*”(星号)表示它之前的字符可以出现 0-n 次,因此n* 匹配“nnn”、“n”以及“”。与“。”组合。 (DOT) 它匹配任何字符的 0-n 次出现,除了 "\n"
  • (?s) 修饰“.”的功能(DOT),因此它也接受 "\n"
  • (?-s) 关闭 (?s),因此“.” (DOT) 不再接受“\n”。

所以这个表达式搜索“methodname”,然后是 0-n 个字符(也是“\n”),然后是“set”,然后是 0-n 个字符(没有“\n”),然后是“param1” ,参数 2"。 它有可能在“方法名”方法之后但在“方法名”方法之外找到一个方法调用,但我认为你无法控制这一点。 希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    相关资源
    最近更新 更多