Exporte todas as correspondências de expressões regulares no Textpad ou Notepad++ como uma lista

Exporte todas as correspondências de expressões regulares no Textpad ou Notepad++ como uma lista

No Textpad ou Notepad++ existe uma opção para exportar todas as correspondências para uma localização de expressão regular, como uma única lista?

Em um grande arquivo de texto, estou procurando tags (palavras entre %%), usando expressão regular %\< and \>%e quero todas as correspondências como uma única lista, para poder remover duplicatas usando o Excel e obter uma lista de tags exclusivas.

Responder1

Você pode conseguir isso usandoReferências anteriorese funcionalidade Localizar e Marcar no Notepad++.

  1. Encontre as correspondências usando regex (digamos %(.*?)%) e substitua por \n%\1%\n, depois disso teremos nossa palavra alvo em linhas separadas (ou seja, nenhuma linha terá mais de uma palavra correspondente)

  2. Use a funcionalidade Pesquisar-->Localizar-->Marcar para marcar cada linha com regex %(.*?)%e lembre-se de marcar 'Linha de favoritos'antes de marcar o texto

  3. Selecione Pesquisar-->Favorito-->Remover linhas não marcadas
  4. Salve o texto restante. É a lista obrigatória.

Responder2

Está fazendo issoemNotepad++ é um requisito obrigatório? Você está no Windows ou em alguma forma de Unix? Se você estiver no Windows, poderá fazer isso (parcialmente) no prompt de comando:

findstr /r "%[az].*[az]% %[az]%"seu arquivo>novo arquivo

findstré vagamente inspirado em grep, então estenovo arquivo conterá todoslinhascorrespondendo aos seus critérios de pesquisa; você pode então usar o Notepad++ para remover o texto indesejado (à esquerda do primeiro% e à direita do segundo).


E, claro, se você estiver no Unix, poderá fazer a tarefa equivalente com sed. E se você tiver GNU grep(ou seja, se estiver no Linux), você pode fazer isso com grep -o.

Responder3

Existe um plugin Notepad++ que pode copiar a expressão regex correspondente para um novo arquivo em uma nova guia. Extrato Regex

Como não encontrei nenhum plugin para o Notepad++ que pudesse extrair algum texto do documento atual ou todos os arquivos de um local com algumas configurações adicionais (como conversão de maiúsculas e minúsculas), decidi tentar fazer isso sozinho. (...) A interface do plugin é bastante direta (...). (...) Os campos "Localizar", "Substituir" e "Máscara" usam a sintaxe regex C++11. A extração de arquivos funciona no momento apenas para aqueles em UTF8.

Editar Entrada de diálogo adaptada à pergunta

insira a descrição da imagem aqui

Na imagem você pode ver como preencher a caixa de diálogo. Presumo que uma palavra não contenha espaços, etc., apenas caracteres correspondentes a \w. Notavelmente:

  • Use um par de colchetes para permitir a seleção da palavra, sem os caracteres de porcentagem.
  • Escolha a opçãoExtrair com substituir, para selecionar a primeira correspondência. Caso contrário, você obterá uma saída colunar de todos os $1, $2, etc.
  • VerificarPular $& ...para deixar de fora as correspondências completas.
  • VerificarFiltrar únicorelatar cada partida apenas uma vez.
  • CliqueExtrairpara selecionar obter resultados. (Procurarapenas encontra as correspondências, mas não informa).

Responder4

Se alguém estiver interessado em uma solução online (já que o plugin notepad++ não funciona em 64 bits), você pode tentarMolbiotoolsele pode extrair seu regex completamente sem linhas adicionais ou com elas.

informação relacionada