Eclipse搜索结果的具体方法

时间:2014-02-06 13:09:09

标签: java regex eclipse search

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

1 个答案:

答案 0 :(得分:0)

我找到了一个或多或少的工作表达式:

(?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” ,param2“。 有可能,它会在“methodname”方法之后找到方法调用,但我不认为你可以控制它。 希望它有所帮助