Как скопировать отмеченный текст в блокнот ++ - PullRequest
52 голосов
/ 19 февраля 2010

У меня есть часть исходного файла HTML, которая содержит строки, которые я хочу выделить и скопировать сразу, используя функцию регулярного выражения в Notepad ++.

Вот часть исходного текста:

<option value="Performance"
>Performance</option>
<option value="Maintenance"
>Maintenance</option>
<option value="System Stability"
>System Stability</option>

Я использую регулярное выражение "[0-9a-zA-Z ]*" для поиска значений "значения".Я также выбрал функцию поиска в Notepad ++, чтобы выделить / отметить найденный текст.Это работает нормально, теперь я хочу скопировать или вырезать только выделенный текст в буфер обмена для дальнейшей обработки.Но я не могу найти эту функцию в Notepad ++.Это просто невозможно или я слишком тупой?

Ответы [ 8 ]

95 голосов
/ 22 ноября 2011

Начиная с Notepad ++ 5.9 они добавили функцию «Удалить непомеченные строки», которая может быть использована для удаления всего, что вам не нужно, вместе с поиском и заменой другого текста в каждой строке значения.

  1. Используйте функцию Поиск -> Найти -> Пометить, чтобы отметить каждую строку, которую вы хотите сохранить / скопировать, и не забудьте поставить галочку 'Строка закладки' перед выделением текста
  2. Выберите Поиск ->Закладка -> Удалить непомеченные линии
  3. Используйте Поиск -> Найти -> Заменить, чтобы заменить другой текст, который вы не хотите сохранять / копировать, с ничем
  4. Сохраните оставшийся текст или скопируйте его.

Вы также можете сделать похожую вещь, используя Поиск -> Закладка -> Копировать отмеченные строки

Таким образом, технически вы все равно не можете скопировать отмеченный текст, но вы можете пометить строкивыделенный текст, а затем выполняйте различные операции с помеченными или неотмеченными строками.

22 голосов
/ 12 июля 2012

Я добавляю это для полноты, так как этот пост высоко в результатах поиска Google.

Вы можете скопировать все из поиска регулярных выражений, но не за один шаг.

  1. Используйте Mark под Search и введите регулярное выражение в Find What.
  2. Выберите строку закладок и нажмите «Отметить все».
  3. Нажмите Поиск -> Закладка -> Копировать отмеченные строки.
  4. Вставить в новый документ.
  5. Вам может понадобиться удалить ненужный текст в строке, которая не была частью регулярного выражения, с помощью поиска и замены.
19 голосов
/ 19 февраля 2010

Попробуйте вместо этого:

Сначала исправьте проблему окончания строки: (Notepad ++ не допускает многострочные регулярные выражения)

Поиск [Расширенный режим]: \r\n> (или окончания строк вашей собственной системы)

Заменить: >

затем

Поиск [Режим регулярных выражений]: <option[^>]+value="([^"]+)"[^>]*>.*

(если вы хотите, чтобы все вхождения value отличались от опций, просто удалите начальный option)

Замените: \1

Объяснение второго регулярного выражения:

<option[^>]+     Find a < followed by "option" followed by 
                 at least one character which is not a >

value="          Find the string value="

([^"]+)          Find one or more characters which are not a " and save them
                 to group \1

"[^>]*>.*        Find a " followed by zero or more non-'>' characters
                 followed by a > followed by zero or more characters.

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

10 голосов
/ 05 февраля 2018

Это похоже на https://superuser.com/questions/477628/export-all-regular-expression-matches-in-textpad-or-notepad-as-a-list.

Я надеюсь, что вы пытаетесь извлечь:"Спектакль""Техническое обслуживание"«Стабильность системы»

Вот способ - Шаг 1/3: Откройте Поиск-> Найти-> Заменить вкладку, выберите переключатель Регулярное выражение.Введите в Найти что: (\ "[a-zA-Z0-9 \ s] + \") и в Заменить на: \ n \ 1 и нажмите кнопку Заменить все.Before Clicking Replace All

Шаг 2/3. После первого шага ваши ключевые слова будут в следующих строках (как показано на следующем рисунке).Теперь перейдите на вкладку «Пометить» и введите то же выражение регулярного выражения в поле «Найти что:».Поставьте галочку на закладке.Затем нажмите Пометить все.Bookmark the lines

Шаг 3/3: Перейти к поиску -> Закладки -> Удалить неотмеченные строки. Remove Unmarked lines

Итак, у вас естьокончательный результат, как показано ниже Final Result

7 голосов
/ 20 октября 2016

Это была бы отличная возможность иметь в Notepad ++.Я использую следующую технику для извлечения всех совпадений из файла:

powershell
select-string -Path input.txt -Pattern "[0-9a-zA-Z ]*" -AllMatches | % { $_.Matches } | select-object Value > output.txt

И если вы хотите, чтобы только отдельные совпадения в отсортированном списке:

powershell
select-string -Path input.txt -Pattern "[0-9a-zA-Z ]" -AllMatches | % { $_.Matches } | select-object Value -unique | sort-object Value > output.txt
2 голосов
/ 19 февраля 2010

Нет, с Notepad ++ 5.6.2 это кажется невозможным. Хотя выбор столбца (Alt + Selection) возможен, несколько вариантов выбора, очевидно, не реализованы и, следовательно, также не поддерживаются функцией поиска.

0 голосов
/ 02 июля 2017

Это невозможно с Блокнотом, но ЗДЕСЬ ЛЕГКОЕ РЕШЕНИЕ :

Вам понадобится бесплатная версия Expresso v3.1 http://www.ultrapico.com/ExpressoDownload.htm

Я прибег к другому фрагментубесплатное программное обеспечение: Expresso by Ultrapico.

  1. После установки перейдите на вкладку «Тестовый режим».
  2. Скопируйте ваш REGEX в панель «Регулярные выражения».
  3. Вставьте весь текст для поиска в панель «Образец текста» Expresso,

  4. Нажмите кнопку «Выполнить матч».Щелкните правой кнопкой мыши в «области результатов поиска» и «Экспорт в ...» или «Копировать соответствующий текст в буфер обмена».

NB: @ Andreas Jansson но он скрыт в комментарии, так как эта страница занимает высокое место в поиске Google, я оставляю ее здесь для других.

0 голосов
/ 10 ноября 2013

У меня была такая же проблема. Вы можете перечислить совпадения с регулярными выражениями в новой вкладке, каждое совпадение в новой строке в PSPad Editor, который очень похож на Notepad ++.

Нажмите Ctrl + F для поиска, проверьте опцию регулярного выражения, поместите регулярное выражение и нажмите Список.

...