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


17

Aqui está o meu problema: Em um arquivo .txt, preciso localizar e substituir milhares de instâncias de sintaxe como esta:

(consulte (a053007djfgspwdf))

ou

(consulte (a053007djfgspwdf) e (a54134xsedgeg))

ou

(consulte (a053007djfgspwdf), (a9554xsdfgsdfg) e (a54134xsedgeg))

Há muita variedade entre as seqüências de texto iniciais (ver (a e final )) . Isso pode ser configurado no Notepad ++ usando regex? Se sim, como eu faria isso? Obrigado!

Respostas:


17

Desculpe pessoal, acho as outras respostas complicadas. (Sem desrespeito aos cartazes originais.)

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

  1. Abra a caixa de diálogo pesquisar / substituir ( CTRL+ Fa guia substituir)
  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, é por isso que você deseja que um curinga se livre deles).

Na caixa de diálogo substituir:

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

(Você está substituindo qualquer coisa nessas citações por nada para se livrar dela)

Fonte: https://www.organicweb.com.au/17226/general-technology/notepad-wildcard/


15

Sim pode! O Notepad ++ possui 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. Pode ser necessário modificar o RegEx ou escrever o seu para atender às suas necessidades. Aqui é um ótimo lugar para ajudá-lo a experimentar.

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

Cordas correspondentes:

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


Substitua (consulte (a ...)) pela substituição


Obrigado! Ele encontrou as instâncias do primeiro exemplo (consulte (a053007djfgspwdf)), mas não as outras. Ainda assim, um ótimo começo. Vou brincar com ele para ver o que mais posso fazer. Se você tiver mais sugestões, eu agradeceria muito. Obrigado novamente.
Michael Tuck

Você clicou em Substituir tudo ou continuou clicando em Substituir para alternar entre correspondências semelhantes ao uso Localizar próximo ? O texto que você está procurando apenas começa (see (ae termina ))? Se você tiver seqüências de caracteres que terminem com parênteses únicos, poderá transformar o último \)no grupo de captura (\)|)para corresponder as que terminam em ))"ou" ).
time.time

Tentei algumas substituições e, em seguida, Substituir tudo. Depois disso, a sequência de pesquisa não encontrou nada. O texto para todos é: (consulte um texto variado )) Nenhuma string com parênteses únicos, exceto talvez erros de digitação.
Michael Tuck

Atualizei minha resposta com um RegEx alternativo (\(see \(a|\(a)([^\)]+)\)(\)|)que corresponderá às strings da sua pergunta.
time.time

LOL você atualizou sua resposta enquanto eu estava editando minha resposta. Vou experimentar o novo.
quer

1

Experimente este padrão: \(see \(a(.*)\)verifique se a opção ". Corresponde à nova linha" está desmarcada e a opção "envolver" está marcada.


1

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

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

Isso 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 ". *" no canto inferior direito do texto sublime 2 (regex)
  3. digitado <br><b>Figure.*</b>
  4. substituir por: -esquerda em branco

Isso substituiu todas as minhas instâncias por figuras. note que eu usei. * onde os números estariam. Espero que isto ajude.


0

O regex exato que você precisa é:

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

Por exemplo:

insira a descrição da imagem aqui

Ao selecionar Localizar tudo no documento atual , o resultado seria:

insira a descrição da imagem aqui

Você pode simplesmente usar Substituir conforme sua necessidade.

Se você deseja incluir o atambém na regex, pode usar:

\(see \(a\w+\)((, \(a\w+\))*( and \(a\w+\)))?\)
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.