В окне результатов поиска Notepad++ отобразить многострочные результаты

В окне результатов поиска Notepad++ отобразить многострочные результаты

Я сделал многострочное регулярное выражение поиска с помощью Notepad++. Строка начинается с INFO и заканчивается известным шаблоном цифр. Когда я нажимаю find после ввода моего регулярного выражения, я получаю правильные результаты, выделенные в главном окне.

Для моего варианта использования я хочу использовать find all in open documentsэто же регулярное выражение. Проблема в том, что когда я это делаю, окно результатов поиска показывает только первую строку многострочного совпадения. Чтобы быть действительно полезным, мне нужно, чтобы все совпадение (которое в моем случае оказывается 2 строками почти всегда) отображалось в окне результатов поиска. Я хочу взять вывод экрана результатов поиска и использовать его в качестве входных данных для другого процесса, который выходит за рамки этого вопроса.

Так как мне отобразить все многострочное совпадение? Я могу придумать, как сделать это в виде программы на языке скриптов или программирования, но как сделать это из Notepad++?

решение1

Отрицательный ответ: Хотя можно искать и выбирать несколько строк в нескольких файлах, установив параметр регулярного выражения «. соответствует новой строке», на панели результатов поиска будет отображаться только первая строка для каждого найденного результата.

Это поведение встроено в Notepad++ и не может быть изменено. Я также просмотрел перечисленные плагины, и ни один из них не может изменить это.

Вы можете запросить это как запрос на функцию на Сообщество Notepad++, но я не вижу немедленного решения вашей проблемы.

решение2

Попробуйте следующее. Допустим, ваш документ начинается со слова INFO и заканчивается на 999.

Ваше регулярное выражение будет выглядеть так:

INFO.+?999

Для того, чтобы это работало сМНОГОЛИНИЙ, в окне поиска, прямо рядом с галочкой для использованияРегулярное выражение, есть флажок, который говорит. соответствует новой строке. Для работы вам необходимо выбрать его.

ps Проверил, работает на моем Notepad++ версии 7.5.1

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

решение3

Удалось решить ее в два шага: первый шаг:

  • соответствие многострочному
  • замените его чем-нибудьотметкаи сохранить полезную информацию второй шаг:
  • «найти в документе» = найти отмеченные строки [введите описание изображения здесь][1]

[1]: см. рабочий образецhttps://i.stack.imgur.com/ClQjU.png

решение4

Eстьхакерскийспособ добиться этого.

  1. В диалоговом окне поиска перейдите на вкладку «Отметить».
  2. Нажмите «Отметить все».
  3. Теперь нажмите «Копировать выделенный текст».
  4. Откройте новую вкладку и вставьте скопированный текст.

Теперь у вас будут отображаться все строки каждого совпадения результатов поиска, просто их не будет в окне Search results. Еще один недостаток в том, что это будет работать только с текущим документом, ваше требование Find All in All Opened Documentsне будет выполнено.

диалог поиска в блокноте+++: Копировать отмеченный текст

На следующем gif-изображении показано выполнение этих шагов в журнале зоопарка (связь).

многострочный вывод поиска в notepad++

Связанный контент