2014-02-06 2 views
1

В Eclipse File Search у вас есть возможность поиска «содержащего текст» и фильтрации результата с помощью «шаблонов имен файлов». Например, если вы ищете setValue(int x) с шаблоном имени файла «My * .java», вы найдете метод setValue(int x) в файле с именем MyGame.java, но не в файле с именем YourGame.java. Теперь мне нужен способ фильтрации поиска, чтобы показывать результаты только по определенному методу. Например, если у меня есть 10 классов, которые переопределяют метод init() и метод reset() того же суперкласса. Внутри init() и reset() вызывается setValue(int x). Теперь я хочу искать все вхождения setValue(int x), но только внутри методов init(). Есть ли способ сделать это? С регулярным выражением может быть или у Eclipse есть такой метод? БлагодаряРезультат поиска Eclipse по определенному методу

+0

Что-то, что связано с моим вопросом [здесь] (http://stackoverflow.com/questions/21577308/eclipse-file-search-regular-expression-for-group-unions-and-negation). Вы можете получить некоторые подсказки от этого. –

ответ

0

Я нашел более или менее рабочее выражение:

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

Поясню:

  • ДАЛЕЕ "" (DOT) означает 1 символ, кроме «\ n» (Newline)
  • «*» (звездочка) означает, что символ до него может происходить 0-n раз, поэтому n* соответствует «nnn», «n» и также "". В комбинации с "." (DOT) он соответствует 0-n вхождениям любого символа, кроме «\ n»
  • (? S) изменяет функцию «.». (DOT), так что он принимает также «\ n»
  • (? -s) выключается (? S), так что «.» (DOT) больше не принимает «\ n».

Таким образом, это выражение ищет «имя метода», за которым следует 0-n символов (также «\ n»), за которым следует «set», за которым следуют 0-n символов (без «\ n»), затем «param1, param2». Возможно, он обнаруживает метод method после, но вне метода methodname, но я не думаю, что вы можете контролировать это. Надеюсь, это поможет

Смежные вопросы