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++の正規表現エンジンのバグによるものです(バグレポート)。

ゼロ幅ルックアラウンドアサーションを使用する場合、交換するまったく効果がありません!

たとえば、T(?=E)を に置き換えるBと、文字列 に使用する場合と同じ動作になりますTEST

クリックすべて置換これが修正されるまでは回避策として機能します。

答え2

現在、パイプ|記号は Notepad++ ではサポートされていません。

最新バージョンは正規表現をNotepad 10.1.1サポートしています|

関連情報