Возможно ли с Eclipse найти результаты только в строковых литералах? - PullRequest
5 голосов
/ 09 февраля 2011

Предположим, у меня есть следующий код Java:

public String foo()
{
  // returns foo()
  String log = "foo() : Logging something!"
  return log;
}

Могу ли я искать в Eclipse foo(), встречающийся только в строковом литерале, но не где-нибудь еще в коде? Поэтому в приведенном здесь примере Eclipse должен найти только третье вхождение foo(), а не первое, которое является именем функции, а не второе, которое является комментарием.

Редактировать: Простые регулярные выражения не будут работать, потому что они найдут foo() в строке, подобной

String temp = "literal" + foo() + "another literal"

Но здесь foo() - это имя функции, а не строковый литерал.

Ответы [ 2 ]

2 голосов
/ 09 февраля 2011

Вы можете попробовать это так:

"[^"\n]*foo\\(\\)[^"\n]*"

Вы должны избегать скобок, плюс это регулярное выражение не соответствует новым строкам или дополнительным кавычкам, которые предотвращают неправильные совпадения.

1 голос
/ 09 февраля 2011

Может быть, вы должны использовать регулярное выражение, чтобы найти любой случай foo () между двумя "?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...