O Notepad ++ replace não funciona para a Expressão Regular

3

EDITAR

Prova de que deve funcionar: link

Estou tentando substituir todas as ocorrências de , que não estão entre aspas com ~

20,72275,Epidurography,1
21,72285,X-Ray C/T Spine Disk,1
22,72291,"Perc Vert/Sacroplasty, Fluor",1
23,72292,"Perc Vert/Sacroplasty, Ct",1

Torna-se

20~72275~Epidurography~1
21~72285~X-Ray C/T Spine Disk~1
22~72291~"Perc Vert/Sacroplasty, Fluor"~1
23~72292~"Perc Vert/Sacroplasty, Ct"~1

Meu Regex funciona como um encanto, mas não consigo substituir os valores que ele encontra. O Notepad ++ destaca a vírgula a ser substituída, mas passa sem fazer nenhuma alteração quando clico no botão Substituir .

Find what: (,)(?=(?:[^"]|"[^"]*")*$)

Replace with: ~

Eu tentei outros valores pensando ~ foi de alguma forma reservado, mas todos os outros caracteres ou combinações de caracteres não parecem funcionar também. Espero que este seja apenas o resultado de algum descuido da minha parte. Qualquer ajuda seria apreciada.

Estou usando o Notepad ++ v6.1.1

Obrigado!

Regexde link

    
por Brandon Boone 26.04.2012 / 19:59

2 respostas

4

Isso se deve a um bug no mecanismo RegEx do Notepad ++ ( relatório de erros ).

Ao usar asserções de lookaround de largura zero, clicar em Substituir simplesmente não tem efeito!

Por exemplo, a substituição de T(?=E) por B exibe o mesmo comportamento quando usada na string TEST .

Clicar em Substituir tudo serve como solução alternativa até que isso seja corrigido.

    
por 26.04.2012 / 20:32
0

Atualmente, o símbolo pipe | não suporta no notepad ++.

A versão mais recente Notepad 10.1.1 suporta | em RegEx

    
por 26.04.2012 / 20:25

Tags