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

22

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

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

    
por Kiranshell 20.09.2012 / 20:17

4 respostas

47

Você pode conseguir isso usando Backreferences e a funcionalidade Localizar e marcar no Notepad ++.

  1. Encontre as correspondências usando regex (digamos %(.*?)% ) e substitua por \n%%\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 - > Marca para marcar cada linha com regex %(.*?)% e lembre-se de marcar Linha de favoritos 'antes de marcar o texto

  3. Selecione Pesquisar - > Marcador - > Remover linhas não marcadas
  4. Salve o texto restante. É a lista necessária.
por 20.09.2012 / 22:29
5

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

findstr /r "%[a-z].*[a-z]% %[a-z]%" your_file > new_file

findstr é vagamente inspirado por grep , então new_file  conterá todas as linhas correspondentes aos seus critérios de pesquisa; você pode 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 .

    
por 21.09.2012 / 00:46
1

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

Because I didn't find any plugin for Notepad++ that can extract some text from current document or all files from a location with some additional settings (like case conversion), I decided to try to make it myself. (...) Plugin interface is pretty straightforward (...). (...) "Find", "Replace" and "Mask" fields use C++11 regex syntax. Extracting from files works right now only for those in UTF8.

Editar Entrada de diálogo personalizada para a pergunta

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

  • Use um par de colchetes para permitir a seleção da palavra, sem os caracteres de porcentagem.
  • Escolha a opção Extrair com substituição para selecionar a primeira correspondência. Caso contrário, você obterá uma saída colunar de todos os $ 1, $ 2, etc.
  • Verifique Ignorar $ & ... para deixar de fora as partidas completas.
  • Marque Filtrar exclusivo para denunciar cada correspondência apenas uma vez.
  • Clique em Extrair para selecionar obter resultados. ( Pesquisar encontra apenas as correspondências, mas não reporta).
por 20.06.2018 / 17:42
0

No TextPad, você acessa a caixa Find como de costume e, em seguida, usa o botão Mark All .

De lá, use a função Copy Bookmarked Lines . (Menu Editar > Copiar outras > Linhas marcadas.)

    
por 16.02.2017 / 19:22