Usando pesquisa / substituição com curinga no Notepad ++

15

Aqui está o meu problema: em um arquivo .txt, eu preciso encontrar e substituir milhares de instâncias da sintaxe assim:

(veja (a053007djfgspwdf))

ou

(veja (a053007djfgspwdf) e (a54134xsedgeg))

ou

(veja (a053007djfgspwdf), (a9554xsdfgsdfg) e (a54134xsedgeg))

Há muita variedade entre as strings de texto (veja (a e o final )) . Isso pode ser configurado no Notepad ++ usando regex? Se sim, como eu faria isso? Obrigado!

    
por Michael Tuck 28.08.2013 / 00:50

5 respostas

13

Sim, pode! O Notepad ++ tem um modo de pesquisa RegEx que você pode selecionar para todas as suas necessidades de substituição do RegEx.

O exemplo abaixo é uma substituição básica para qualquer coisa entre (see (a...)) , com exceção de uma quebra de linha. Você pode precisar modificar o RegEx ou escrever o seu próprio para atender às suas necessidades. Aqui está um ótimo lugar para ajudá-lo e experimentar.

RegEx: \(see \(a.+\)\)

Strings correspondentes:

(see (a053007djfgspwdf))
(see (a053007djfgspwdf) and (a54134xsedgeg))
(see (a053007djfgspwdf), (a9554xsdfgsdfg) and (a54134xsedgeg))


    
por 28.08.2013 / 01:09
10

Desculpe pessoal, eu só acho outras respostas complicadas. (Nenhum desrespeito aos originais.)

Como isso sempre aparece como o primeiro resultado da pesquisa, adicionarei isso em:

  1. Abra a caixa de diálogo de busca / substituição ( CTRL + F e depois a aba de substituição)
  2. Marque "Expressão regular" na parte inferior
  3. Use. * como curinga

Por exemplo, eu queria remover todas as instâncias de abp="1314", abp="1313", abp="1312" etc (basicamente os números são todos diferentes, e é por isso que você quer que um curinga se livre de eles).

Na caixa de diálogo de substituição:

Encontre em que: abp=".*"
Substitua por:

(Você está substituindo qualquer coisa entre essas citações sem nada para se livrar dela)

Fonte: link

    
por 02.03.2016 / 13:14
1

Experimente este padrão: \(see \(a(.*)\) e verifique se você tem ". matches newline" desmarcada e "envolvente" marcada.

    
por 28.08.2013 / 18:51
1

Como alguns deles foram muito aprofundados para eu entender, deixe-me mostrar o que eu fiz depois de ler todas essas soluções e mais para finalmente entender melhor. (esta é uma abordagem simples, pode não ser a melhor)

Eu queria remover todos os elementos da minha figura em toda a página da web. Figura 2.1, Figura 1.1, ect.

Foi:

<p class="td1-content b8"><span class="stepNumber">2.  </span>Select Memo from the toolbar<br><b>Figure 2.1</b></p>

Eu queria que acabasse:

 <p class="td1-content b8"><span class="stepNumber">2.  </span>Select Memo from the toolbar</p>

Mas cada

tinha um número de figura diferente, então usei isso no texto sublime 2.

  1. ctrl H
  2. clique no símbolo ". *" na parte inferior direita do texto sublime 2, (regex)
  3. digitado <br><b>Figure.*</b>
  4. substitua por: -lixo em branco

Isso substituiu todas as minhas instâncias por números. observe que eu usei * onde os números seriam. Espero que isso ajude.

    
por 24.03.2016 / 16:43
0

A exata regex que você precisa é:

\(see \(\w+\)((, \(\w+\))*( and \(\w+\)))?\)

Por exemplo:

AoselecionarLocalizartodosnodocumentoatual,oresultadoseria:

Você pode simplesmente usar Substituir conforme sua necessidade.

Se você quiser incluir também o a na regex, poderá usar:

\(see \(a\w+\)((, \(a\w+\))*( and \(a\w+\)))?\)
    
por 03.09.2013 / 07:05