Encontre e substitua o notepad ++ com curingas

1

Li cerca de 15 tutoriais sobre expressão regular, mas não estou conseguindo, pois não consegui adaptá-lo ao meu problema.

Eu tenho um conjunto de código que pode ser encontrado em muitos documentos diferentes. Pode haver variantes destes com conteúdo diferente entre as duas tags de âncora, mas aqui está uma variante (as outras são todas de forma semelhante).

[anchor=ad1][img]http://i.imgur.com/48rwaraw.png[/img] 
                                 [URL=http://goo.gl/Ii3WNz][img]http://i.imgur.com/rBbf7nM.png[/img][/URL]
                                                 [size=7pt]Advertised sites are not endorsed and may be unsafe, untrustworthy, or illegal in your jurisdiction. [url=http://goo.gl/aw52j52]Advertise here.[/url][/size]
[img]http://i.imgur.com/48rwaraw.png[/img][anchor=ad1end]

Eu quero poder substituir tudo entre as tags de âncora, ou seja, onde meu * está aqui:

[anchor=ad1]*[anchor=ad1end]

A substituição incluiria caracteres semelhantes ao original, se isso fizer diferença. Eu simplesmente não consigo obter o material da expressão regular para encontrar a string correta, deixe de substituí-la por outra. Obrigado pela ajuda.

Editar: Usando o ToolBucket para usar multilinhas

    
por Adam 19.02.2015 / 12:45

2 respostas

3

Localizar e substituir seqüência de texto de várias linhas entre as tags

Solução # 1

Use a regex a seguir em Find what : \[anchor=ad1\](.*?)\[anchor=ad1end\] ,
Replace with : [anchor=ad1]replace[anchor=ad1end]
e selecione Regular expression e [x] . matches newline

Dadosdeamostraparateste:

[anchor=ad1]somemultilinestringoftextthatshouldbereplaced[anchor=ad1end][anchor=ad1][img]http://i.imgur.com/some_image.png[/img]anotheronemultilinestringoftextthatshouldbereplaced[anchor=ad1end]...

Solução#2

Umasoluçãopoucomaisavançada.IssorequeroNotepad++v6.0ousuperior.

Encontreoque:(?<=\[anchor=ad1\]).*?(?=\[anchor=ad1end\])
Substituirpor:replace
selecioneRegularexpressione[x].matchesnewline
Notaimportante:ReplacebotãoNÃOestáfuncionandonoNotepad++v6.1.6,masReplaceAllfuncionabem.

    
por 19.02.2015 / 14:35
-1

Você pode incluir as tags inicial e final na sua consulta de pesquisa. Em seguida, use RegEx para capturar tudo no meio com o .*

[anchor=ad1].*[anchor=ad1end]

A chave é garantir que você verifique ". corresponde à nova linha". Veja a captura de tela abaixo.

    
por 19.02.2015 / 13:42