Encontre regex e adicione ao final do documento no Notepad ++

0

Eu tenho alguns arquivos seguindo o seguinte formato:

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

Eu quero extrair todas as instâncias de XYZ e UVW e adicioná-las ao final do documento, assim:

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

Existe uma maneira de fazer isso com o Notepad ++?

O que eu tenho até agora é como capturar instâncias individuais de <a href="link">XYZ<a/> , extraindo a parte XYZ via (.*?)/$1 etc. Mas não sei como colar esse conteúdo no final do documento (presumivelmente por meio de $ ), nem como capturar todas as instâncias (XYZ, UVW, etc.)

    
por user681866 07.01.2017 / 13:03

1 resposta

0

Modifiquei seu exemplo aplicando as seguintes alterações:

  1. substituiu manualmente <a/> por </a> , pois o considerei como um erro de digitação.
  2. adicionou algumas novas linhas e diversificou o número de ocorrências em cada linha para verificar a robustez da expressão regex

Por fim, a saída que uso é a seguinte:

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

É importante fazer uma cópia do documento original.
Em N ++
Ctrl + H
Encontre o que: (.*?<a href="(?<url>[^"]*)">(?<description>.*?)<\/a>)(?(?!(.*?<a href="(?<url>[^"]*)">.*?<\/a>))(.*?$)|())
Substitua por: $+{description}, // o delimitador é vírgula, mas qualquer outro caractere pode ser usado em vez disso. Embrulhe ao redor: verificado
Modo de pesquisa → selecione 'Expressão regular' AND '. Matches newline ': verificado Clique no botão "Substituir tudo".

Resultado obtido:
Desc100,Desc101,Desc102,Desc103,Desc104,Desc105,Desc106,Desc107,Desc108,Desc109,Desc110,

Esta operação deixa o documento com todas as instâncias necessárias. Agora, esse conteúdo pode ser anexado ao documento original manualmente ou programaticamente.

    
por 08.01.2017 / 23:21