BRegIf.DLL+大文字小文字の区別No.02560
h-tom さん 03/07/31 21:04
 

h-tom です。

BRegIf.DLLを使用し、「大文字/小文字の区別」をチェックなしで使うと、

--ここから turukame.3:02216より
>  現状で、「大文字/小文字の区別」がOFFとなってた場合、鶴亀側で検索文字
> 列も検索対象文字列をすべて小文字に変換してしまいます。
--ここまで

とのことなので、大文字のエスケープシーケンスが小文字に変換されてしまい、
検索がうまくいかないです。
 "abc123"を"\D+"(数字以外)で検索しても、"123"にマッチする。

これは仕様って事になるのでしょうか?

[ ]
RE:02560 BRegIf.DLL+大文字小文字の区別No.02562
Arimac さん 03/07/31 23:06
 
BRegIf.DLL+BREGEXP.DLLでは正規表現内で「(?i)」を指定する
事により大文字/小文字の区別を行わないようにできるので
「大文字/小文字の区別」をチェックして、この指定を行うと
問題の回避はできます。

でも正規表現の時はエスケープシーケンスは変換しない方が
いいような気が・・・(^^;

[ ]
RE:02562 エスケープ・シーケンスの扱いNo.02563
Iranoan さん 03/07/31 23:56
 
 秀まるおさん、Arimacさん今日は、Iranoan です。
> でも正規表現の時はエスケープシーケンスは変換しない方が
> いいような気が・・・(^^;
 同感です。

 これに加えて、HmJre.dll で「あいまい検索」+「正規表現」でも、エス
ケープ・シーケンスに関しては、変換せず正規表現として処理した方がよい気
がします。「(A)」を上記設定で検索すると、「(A)」「(A)」にヒットする
わけではなく「()」は無視されるのに、「\n」を検索すると「n」や「n」に
ヒットするというは...。

[ ]
RE:02562 BRegIf.DLL+大文字小文字の区別No.02564
h-tom さん 03/08/01 07:26
 

>BRegIf.DLL+BREGEXP.DLLでは正規表現内で「(?i)」を指定する
>事により大文字/小文字の区別を行わないようにできるので
>「大文字/小文字の区別」をチェックして、この指定を行うと
>問題の回避はできます。
埋め込み型の修飾子が使えたんですね。情報ありがとうございます。

[ ]
RE:02560 BRegIf.DLL+大文字小文字の区別No.02567
秀まるお さん 03/08/01 10:17
 
> BRegIf.DLLを使用し、「大文字/小文字の区別」をチェックなしで使うと、

 Perlの正規表現にそういうエスケープ文字があることを知ってから、まずいな
ぁと思ってはいたんですが、やはりまずいですね。

 では修正させていただきます。

[ ]
RE:02563 エスケープ・シーケンスの扱いNo.02568
秀まるお さん 03/08/01 10:28
 
> 「\n」を検索すると「n」や「n」に
> ヒットするというは...。

 これはこれで全然別のバグでした。さっそく修正させていただきます。

[ ]
RE:02568 エスケープ・シーケンスの扱いNo.02570
Iranoan さん 03/08/01 12:05
 
 秀まるおさん今日は、Iranoan です。
>  これはこれで全然別のバグでした。さっそく修正させていただきます。
 仕様なら変更して頂きたいという意味でしたが、不具合だったんですね。

[ ]