El reemplazo de Notepad ++ no funciona para la expresión regular

El reemplazo de Notepad ++ no funciona para la expresión regular

EDITAR

Prueba de que debería funcionar:http://regexr.com?30pf2


Estoy tratando de reemplazar todas las apariciones de, que no están entre comillascon un~

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

se convierte

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

Mi Regex funciona de maravilla, pero parece que no puedo reemplazar los valores que encuentra. Notepad++ resalta la coma que se va a reemplazar, pero la pasa por alto sin realizar ningún cambio cuando hago clic enReemplazarbotón.

Encontrar que:(,)(?=(?:[^"]|"[^"]*")*$)

Reemplazar con:~

Probé otros valores pensando que ~de alguna manera eran reservados, pero todos los demás personajes o combinaciones de personajes tampoco parecen funcionar. Ojalá esto sea sólo el resultado de algún descuido por mi parte. Cualquier ayuda sería apreciada.

Estoy usando Notepad++ v6.1.1

¡Gracias! Captura de pantalla de NotePad++

expresión regular dehttps://stackoverflow.com/questions/632475/regex-to-pick-commas-outside-of-quotes

Respuesta1

Esto se debe a un error en el motor RegEx de Notepad++ (informe de error).

Cuando se utilizan aserciones de búsqueda de ancho cero, al hacer clicReemplazar¡Simplemente no tiene ningún efecto!

Por ejemplo, reemplazar T(?=E)con Bexhibe el mismo comportamiento cuando se usa en la cadena TEST.

Haciendo clicReemplaza todosirve como solución alternativa hasta que esto se solucione.

Respuesta2

Actualmente, |el símbolo de tubería no es compatible con Notepad++.

La última versión Notepad 10.1.1es compatible |con RegEx

información relacionada