РЕДАКТИРОВАТЬ
Доказательство того, что это должно работать:http://regexr.com?30pf2
Я пытаюсь заменить все вхождения,
которые не заключены в кавычкис~
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
Становится
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
Мой Regex работает как по маслу, но я не могу заменить значения, которые он находит. Notepad++ выделяет запятую, которую нужно заменить, но проходит мимо, не внося никаких изменений, когда я нажимаюЗаменятькнопка.
Найти то, что:
(,)(?=(?:[^"]|"[^"]*")*$)
Заменить:
~
Я пробовал другие значения, думая, что ~
это как-то зарезервировано, но все остальные символы или комбинации символов, похоже, тоже не работают. Надеюсь, это просто результат какой-то оплошности с моей стороны. Любая помощь будет оценена по достоинству.
Я использую Notepad++ v6.1.1
Спасибо!
Регулярное выражение изhttps://stackoverflow.com/questions/632475/regex-to-pick-commas-outside-of-quotes
решение1
Это связано с ошибкой в движке RegEx Notepad++ (отчет об ошибке).
При использовании утверждений обхода нулевой ширины нажатиеЗаменятьпросто не имеет никакого эффекта!
Например, замена T(?=E)
на B
демонстрирует то же поведение при использовании в строке TEST
.
ЩелчокЗаменить всеслужит обходным решением, пока эта проблема не будет исправлена.
решение2
В настоящее время символ вертикальной черты |
не поддерживается в Notepad++.
Последняя версия Notepad 10.1.1
поддерживает |
RegEx