Aplique regex a certas ocorrências

4

Eu tenho um arquivo grande com texto simples (sem tags html, etc.). O que eu quero fazer é aplicar o regex ao arquivo inteiro, por um lado, mas, por outro, quero escolher quais alterações serão aplicadas.

Por exemplo, se eu tiver um regexp como / house / - > home eu quero ver algum tipo de pré-visualização e decidir quais ocorrências ele será aplicado, por ex. primeiro e terceiro.

O que eu preciso é de um editor que exiba não apenas a visualização das alterações (algo como o powergrep editor (powergrep.com)), mas permita-me escolher em quais alterações aplicar. Deixe-me dar um breve exemplo. Eu quero mudar a palavra Alice no livro inteiro "Alice no país das maravilhas", exceto primeira ocorrência na página 55. Claro que eu posso fazer a substituição de tudo e depois mudar essa palavra na página 55, mas não é isso que eu quero.

    
por piotr.gradzinski 03.03.2013 / 19:45

4 respostas

2

Bem, se você está bem com vim , você pode fazer uma pesquisa interativa e substituir assim

:%s/house/home/gc

Isto irá perguntar-lhe antes de aplicar a substituição do regex a cada ocorrência.

    
por 03.03.2013 / 20:23
1

O Netbeans IDE tem essa funcionalidade - regex substitui por visualização. Embora pareça um pouco exagerado usar algo tão pesado aqui ...

Atualizar

A funcionalidade é chamada Substituir em projetos . Vá para Editar - > Substituir em projetos ou pressione CTRL + SHIFT + H .

SelecioneNavegarnaseçãoEscopo-elepermitiráquevocênaveguepelosarquivosdesejados.AgorapressioneLocalizar.Vocêreceberáavisualização:

Escolha quais ocorrências substituir e pressione Substituir X correspondências .

    
por 03.03.2013 / 21:01
0

Se você não está confortável com o vim ;) , você pode tentar, por exemplo, o TED Notepad (meu favorito, limpo, mas muito recursos), Bloco de notas do programador (ambos para Windows) ou kate (Linux / KDE). No entanto, não acho que haja uma prévia da alteração ...

    
por 03.03.2013 / 20:34
0

Plug emacs obrigatório: No emacs (ou xemacs, personal favorite) você pode executar query-replace-regexp , que solicitará uma expressão regular e substituição, e solicitará cada instância. Vinculado a M-C-% por padrão aqui. Há uma versão decente do xemacs para Windows também.

    
por 04.03.2013 / 03:15