Eclipse Regex найти и заменить - PullRequest
       6

Eclipse Regex найти и заменить

5 голосов
/ 11 августа 2010

Я хочу заменить приведенное ниже выражение

ImageIcon("images/calender.gif");

на

ImageIcon(res.getResource("images/calender.gif"));

Может кто-нибудь предложить регулярное выражение, чтобы сделать это в eclipse. Вместо "calender.gif" любое имя файла можетпришел.

Ответы [ 2 ]

10 голосов
/ 11 августа 2010

Вы можете найти этот шаблон (в режиме регулярных выражений):

ImageIcon\(("[^"]+")\)

и заменить на:

ImageIcon(res.getResource($1))

\( и \) в шаблоне выходят за скобкитак как они должны соответствовать буквально.Неэкранированные фигурные скобки (…) устанавливают группу захвата 1, которая соответствует строковому литералу в двойных кавычках, который не должен был выходить из двойных кавычек (что я считаю недопустимым для имен файлов).

[…] - это класс символов .Нечто вроде [aeiou] соответствует одному из строчных гласных.[^…] - это отрицательный класс символов.[^aeiou] соответствует одному из всего, кроме строчных гласных.

+ - это повторение один или более, поэтому [^"]+ соответствует непустой последовательности всего, кроме двойных кавычек,Мы просто окружаем этот шаблон ", чтобы соответствовать строковому литералу в двойных кавычках.

Таким образом, шаблон разбивается следующим образом:

      literal(   literal)
         |          |
ImageIcon\(("[^"]+")\)
           \_______/
            group 1

В строках замены $1 заменяет то, чтогруппа 1 соответствует.

Ссылки

0 голосов
/ 11 августа 2010

Ctrl-F

Найти: ImageIcon\("([^\"]*)"\);

Заменить на: ImageIcon(res.getResource("\1"));

Поставить галочку Regular Expressions.

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