У меня есть несколько файлов следующего формата:

ABC 123 <a href="link">XYZ<a/> DEF 456. GHI 789 <a href="link">UVW</a>. etc.

Я хочу извлечь все экземпляры XYZ и UVW и добавить их в конец документа, вот так:

ABC 123 <a href="link">XYZ<a/> DEF 456. GHI 789 <a href="link">UVW</a>. etc. XYZ, UVW

Есть ли способ сделать это с помощью Notepad++?

Пока что у меня есть, как захватить отдельные экземпляры <a href="link">XYZ<a/> , извлекая часть XYZ через (.*?)/$1 и т.д. Но я не уверен, как вставить это содержимое в конец документа (предположительно через $) или как захватить все экземпляры (XYZ, UVW и т.д.)

1 ответ1

0

Я изменил ваш пример, применив следующие изменения:

  1. вручную заменил <a/> на </a> как я считал опечаткой.
  2. добавили пару новых строк и диверсифицировали количество вхождений в каждой строке, чтобы проверить надежность выражения регулярного выражения

Наконец, вывод, который я использую, выглядит следующим образом:

ABC 123 <a href="link100">Desc100</a> DEF 456. GHI 789 <a href="link101">Desc101</a>. etc.1
ABC 123 <a href="link102">Desc102</a> DEF 456. GHI 789 <a href="link103">Desc103</a>. etc.2
ABC 123 <a href="link104">Desc104</a> DEF 456. GHI 789 <a href="link105">Desc105</a>. etc.ABC 123 <a href="link106">Desc106</a> DEF 456. GHI 789 <a href="link107">Desc107</a>. etc.3
ABC 123 <a href="link108">Desc108</a> DEF 456. GHI 789 <a href="link109">Desc109</a>ABC 123 <a href="link110">Desc110</a>. etc.4

Важно сделать копию оригинального документа.
В N++
Ctrl+H,
Найти что: (.*?<a href="(?<url>[^"]*)">(?<description>.*?)<\/a>)(?(?!(.*?<a href="(?<url>[^"]*)">.*?<\/a>))(.*?$)|())
Замените на: $+{description}, // разделитель - запятая, но вместо этого можно использовать любой другой символ
Обернуть: проверено
Режим поиска → выберите «Регулярное выражение» И ». Совпадения новой строки: проверено
Нажмите кнопку «Заменить все».

Полученный результат:
Desc100,Desc101,Desc102,Desc103,Desc104,Desc105,Desc106,Desc107,Desc108,Desc109,Desc110,

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .