2021年2月23日火曜日

サクラエディタ:premature end of char-class

HTMLタグを除去するマクロを実行すると、タイトルのエラーが表示される。


erase_tag.mac
// タグ除去
S_ReplaceAll('<(“[^”]*”|\'[^’]*’|[^\'”>])*>', '', 60); // すべて置換S_ReDraw(0); // 再描画


ググると、正規表現の扱い方がよろしくないらしいのだけど、同じ内容のmacファイルで正常動作するマクロもある。

Winmergeで2つのファイルを比較すると…



UTF-8ファイルの「BOM」の有無の違いだった!
うまく動作した方は、サクラエディタのマクロの記録で生成したファイルで、その内容をWindowsの新規作成でテキストエディタにペーストした方が失敗したファイルだったというわけです。