Notepad++ 替換不適用於正規表示式

Notepad++ 替換不適用於正規表示式

編輯

證明它應該有效: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

我的正規表示式就像一個魅力,但我似乎無法替換它找到的值。 Notepad++ 突出顯示要替換的逗號,但當我單擊代替按鈕。

找什麼:(,)(?=(?:[^"]|"[^"]*")*$)

用。~

我嘗試過其他價值觀,認為~在某種程度上是保留的,但其他所有字元或字元組合似乎也不起作用。希望這只是我疏忽的結果。任何幫助,將不勝感激。

我正在使用 Notepad++ v6.1.1

謝謝! NotePad++ 螢幕截圖

正規表示式來自https://stackoverflow.com/questions/632475/regex-to-pick-commas-outside-of-quotes

答案1

這是由於 Notepad++ 的 RegEx 引擎中的錯誤(錯誤報告)。

使用零寬度環視斷言時,按一下代替根本沒有任何效果!

例如,替換T(?=E)B在字串上使用時會表現出相同的行為TEST

點選全部替換作為解決方法,直到此問題已修復。

答案2

|目前, notepad++ 不支援管道符號。

最新版本Notepad 10.1.1支援|正規表示式

相關內容