Как можно искать и заменять 2 строки (вместе) через eclipse?

Я хотел бы искать несколько файлов через eclipse для следующих двух строк:

@Length(max = L_255)
private String description;

и замените их на эти два:

@Length(max = L_255, message="{validator.description.len}")
private String description;

Ответ 1

Поиск по умолчанию является многострочным в Eclipse, когда вы используете regex:

(\@Length\(max = L_255)\)([\r\n\s]+private)

Я хотел бы добавить "private String description;"

(\@Length\(max = L_255)\)([\r\n\s]+private\s+?String\s+description\s*?;)

заменить на:

\1, message="{validator.description.len}")\2

Он отлично работает в поиске файлов, вызванном CTRL - H.

Eclipse multi-line search

Как указано в Tika answer, вы можете напрямую скопировать две выбранные строки в поле "Содержит текст" : эти строки будут преобразованы как регулярные выражения для вас Eclipse.

Ответ 2

Еще один совет о том, как получить регулярное выражение для выбранного блока. Откройте один из файлов, который содержит несколько строк (многострочный) для поиска или замены. Нажмите Ctrl + F и выберите "Регулярное выражение". Закройте окно "Найти/заменить". Выберите нужный блок и нажмите еще раз Ctrl + F, чтобы открыть окно "Найти/заменить". Теперь в текстовом поле Найти есть регулярное выражение, которое точно соответствует вашему блоку выбора.

(я обнаружил это, только после создания вручную регулярного выражения для очень длинного блока:)

Ответ 3

CTRL + H принимает две строки, если вы используете regexp (и вам не нужно писать regexp самостоятельно, eclipse делает это для вас).

  • Выберите свои строки.
  • Нажмите CTRL + H. Откроется диалоговое окно поиска. Если "Регулярное выражение" уже проверено, eclipse преобразует две строки, которые вы ищете в regexp для вас, нажмите "Поиск". Если "Регулярное выражение" , если оно еще не было проверено, проверьте его и нажмите "Отмена" (eclipse запоминает ваш выбор).
  • Выберите свои строки еще раз.
  • Нажмите CTRL + H. Откроется диалоговое окно поиска. На этот раз уже выбрано "Регулярное выражение" . eclipse преобразует две строки, которые вы ищете в regexp для вас, нажмите "Поиск".

Ответ 4

Быстрый совет для включения нескольких строк в состав встроенного регулярного выражения:

Если вы обычно используете .* для соответствия любому символу ноль или более раз, вместо этого подумайте о том, чтобы использовать что-то вроде (?:.|\r?\n)*. Или поставьте дополнительный ? в конце, чтобы сделать его неживым.

Объяснение: . не соответствует новым строкам, поэтому необходимо выполнить "or-or": круглые скобки соответствуют либо . перед каналом, либо новой строке после него. ? после \r возвращает карету до того, как фишка строки станет необязательной для новых строк Windows или Unix. ?: исключает все это как группу захвата (что помогает избежать).

Ответ 5

Выберите папку, содержащую все ваши файлы, и нажмите Ctrl + H.