grep(正規表現ON)で0x00が検索できませNo.12566
kiel さん 02/07/26 11:00
 
始めまして

過去ログを探してみましたが、見つけられなかったので質問させてください。

grepダイヤログ(正規表現ON)で「0x00」を検索すると
エラー(赤丸バッテン付き)となり文字列の検索が出来ません。

正規表現をOFFにすれば正常に検索できるのですが・・・

うまく回避する方法はないでしょうか?

環境はWin98SE + 秀丸3.17 + JRE32.DLL 1.17 の組合せです。

よろしくお願いします。

[ ]
RE:12566 grep(正規表現ON)で0x00が検索No.12568
Arimac さん 02/07/26 12:29
 
BRegIf(マクロライブラリ参照)でも起きてしまいました。
トレースを見てみるとJre2Compileもしないで
いきなりGetJreMessageが呼ばれています。
秀丸エディタ本体の問題のようです。
「0[x]00」で検索することで回避できるようです。

[ ]
RE:12568 grep(正規表現ON)で0x00が検索No.12573
秀丸担当 さん 02/07/26 17:31
 
>BRegIf(マクロライブラリ参照)でも起きてしまいました。
>トレースを見てみるとJre2Compileもしないで
>いきなりGetJreMessageが呼ばれています。
>秀丸エディタ本体の問題のようです。
>「0[x]00」で検索することで回避できるようです。

これはその通りで、0x00では問題があり、秀丸側で事前チェックして
0x00があればエラーになるようにしています。
ただエラーの出し方が問題で、自分でエラーを出すべきところが
GetJreMessageを呼んでしまっているので文字化けしてました。

[ ]
RE:12573 grep(正規表現ON)で0x00が検索No.12575
Arimac さん 02/07/26 17:42
 
どうやら「x00」または「X00」の場合にエラーに
しているようですが、正規表現なので
チェックするとしたら「\x00」や「\x0」「\0」「\00」「\000」
をエラーにすべきでは?

[ ]
RE:12575 grep(正規表現ON)で0x00が検索No.12607
秀丸担当 さん 02/07/29 18:46
 
>どうやら「x00」または「X00」の場合にエラーに
>しているようですが、正規表現なので
>チェックするとしたら「\x00」や「\x0」「\0」「\00」「\000」
>をエラーにすべきでは?

それもそうです。
0x00は普通の文字なので検索できないのは変ですね。
修正しておきます。

[ ]
RE:12607 grep(正規表現ON)で0x00が検索No.12633
kiel さん 02/07/30 17:33
 
>>どうやら「x00」または「X00」の場合にエラーに
>>しているようですが、正規表現なので
>>チェックするとしたら「\x00」や「\x0」「\0」「\00」「\000」
>>をエラーにすべきでは?
>
>それもそうです。
>0x00は普通の文字なので検索できないのは変ですね。
>修正しておきます。
Arimacさま、細かいフォローありがとうございました。
私だけではうまく説明できなかったと思います。

秀丸担当さま、修正よろしくお願いします。

[ ]