sakura
sakura copied to clipboard
正規表現での検索文字に\xHHが使えない
正規表現での検索文字に \nnn や \xHH が使えません。 too short multibyte code string というエラーが出ます。 \o{nnn} や \x{HHHH} ならば使えています。 また、置換文字には \nnn も \xHH も使えます。 ヘルプを見ると検索文字に使えるような感じなのですが、サクラと bregonig どちらかの不具合でしょうか。
ヘルプの記載
試してみた
ほぼ最新のサクラエディタで試してみました。
No | パターン | 成否 |
---|---|---|
1 | \x20 |
エラー(too short multibyte code string ) |
2 | \x0020 |
エラー(too short multibyte code string ) |
3 | \x{0020} |
正常に検索される |
4 | \040 |
エラー(too short multibyte code string ) |
5 | \o040 |
検索されて「"\o040"が見つかりません」になる |
6 | \o{040} |
正常に検索される |
- 5については「使える」と書いてない
- 1, 2, 4の挙動について、ヘルプと合ってない
私見
サクラと bregonig どちらかの不具合でしょうか。
メッセージを見る限りだと、サクラエディタのバグっぽく見えますね。
サクラエディタはv2からbregonigをワイド文字モードで呼び出すように変えていますが、 bregonig.dllがマルチバイトのエラーを返却しているように見えます。 bregonig.dll側に不具合「ワイド文字モードで使えない正規表現」があったとして、 対応責任は呼び出し側にある気がします。
対応するならまず原因調査ですかねぇ。
古い2chのログ当たりに書いてあると思いますが、bregexpと昔のbregonigは\xHHが使えました。 がbregonigの途中のバージョンで仕様変更されたけど古いヘルプがそのまま残ってる状態です。