Как можно искать и заменять 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.