検索での正規表現に関する疑問No.03388
さん 99/05/26 10:29
 
検索で正規表現をチェックすると、無条件に単語もチェックされます。
でも実際の動きは、「単語」ではないようです。

強調表示の設定では、正規表現と単語は別々に設定できて、ちゃんと
その通りに動作しているので、検索の方でも、是非そうしてほしいです。

現在は単語として調べたい時は、いちいち、検索語の前後に
[^_0-9a-zA-Z]をつけています。

現在の検索の、この無条件に単語がチェックされる(でも動きは単語ではない)
のは、バグなんでしょうか。それとも意図的に?

どちらにしても、なおしてほしいところです。

[ ]
RE:03388 検索での正規表現に関する疑問No.03394
ひろ さん 99/05/26 16:35
 
 文さん今日は、ひろです。
> 検索で正規表現をチェックすると、無条件に単語もチェックされます。
> でも実際の動きは、「単語」ではないようです。
 check されるというより、gray out 状態で単語は check 出来ない。つま
り OFF と同様の扱いのようです。

> 強調表示の設定では、正規表現と単語は別々に設定できて、ちゃんと
> その通りに動作しているので、検索の方でも、是非そうしてほしいです。
 確かに検索・置換も正規表現+単語が使いたいですね(^^)。

[ ]
RE:03394 検索での正規表現に関する疑問No.03410
さん 99/05/27 12:35
 
> check されるというより、gray out 状態で単語は check 出来ない。つま
>り OFF と同様の扱いのようです。

 私が言いたかったのは、チェックが入った状態でのグレイアウトになります、とい
うことです。「大文字・小文字区別」もチェックが入った状態のグレイアウトになり
ますが、その通りの動きですよね?

 どちらにしても、特に意味がないなら、正規表現+単語、使えるようになってほし
いですね。とっても。

[ ]
RE:03410 検索での正規表現に関する疑問No.03420
番頭++ さん 99/05/27 17:04
 
>> check されるというより、gray out 状態で単語は check 出来ない。つま
>>り OFF と同様の扱いのようです。
>
> 私が言いたかったのは、チェックが入った状態でのグレイアウトになります、とい
>うことです。「大文字・小文字区別」もチェックが入った状態のグレイアウトになり
>ますが、その通りの動きですよね?
>
> どちらにしても、特に意味がないなら、正規表現+単語、使えるようになってほし
>いですね。とっても。

これって検索のダイアログの表示の問題だと思います。

検索、置換の「正規表現」は、「大文字小文字」を意識して、「単語の検索」は
意味がありません。というかその機能はもともとありません。βで要望が出まし
たが、エンハンスはされませんでした。

//*1    a1.mac
    find;   //  ここで、正規表現だけを指定する。
    if( searchoption == 0x10 ){
        message "正規表現のフラグだけが ON です !!!";
    } else {
        message str(searchoption);
    }
endmacro;

強調表示では、βでどなたかが希望を出されて、「正規表現」でも「単語の検索
」がプロパティで活きるようになりました (かすかな記憶)。強調表示では、
「大文字小文字」のフラグは活きています。

次の例は、検索のフラグ searchoption を強調表示のフラグに変換しています。

//*1    a2.mac
//*1    from KZ_ColorPen2.mac

//*3    searchoption のフラグ
//*3    0x01    単語
//*3    0x02    大文字/小文字の区別をする
//*3    0x10    正規表現

//*3    .hilight ファイルのフラグ (番頭++ 流)
//*3    0x43        0100 0011   特に強調 2 のベース
//*3    0x08        0000 1000   大文字/小文字を区別しない
//*3    0x10        0001 0000   正規表現
//*3    0x20        0010 0000   単語

    #f = searchoption;
    $wk2 = "";
    #j = 0x43;  //  特に強調 2 のベース
    if( searchoption & 0x01 ){
        #j = #j | 0x20; //  単語
    }
    if( searchoption & 0x02 ){
        #j = #j & ( 0xFF ^ 0x08 );  //  大文字/小文字を区別する
    } else {
        #j = #j | 0x08; //  大文字/小文字を区別しない
    }
    if( searchoption & 0x10 ){
        #j = #j | 0x10 ;    //  正規表現
    //T #j = #j | 0x10 | 0x20;  //  正規表現、単語
        #j = #j & ( 0xFF ^ 0x08 );  //  大文字/小文字を区別する <== 注意 !!!
    }
    $wk4 = str(#j);
    $wk1 = searchbuffer;
    message $wk1 + "\n" + $wk4; endmacro;
endmacro;

「 ... <== 注意 !!! 」を見てください。

本当の「秀丸」の内部の動きは知りません。
参考までに ...

現状では、検索の正規表現で、
    \<  英単語の始まり
    \>  英単語の終わり
    \w  英単語
で我慢するしか無いのでしょう ...

[ ]
RE:03420 検索での正規表現に関する疑問No.03425
ひろ さん 99/05/27 20:24
 
 番頭++さん今日は、ひろです。
> 検索、置換の「正規表現」は、「大文字小文字」を意識して、「単語の検索」は
> 意味がありません。というかその機能はもともとありません。βで要望が出まし
 確かに仰る通りです。また「大文字・小文字」を区別するのは当たり前だ
と思いますが、「単語の検索」は文字列同様出来ても問題ないような気がし
ます。「[^a-zA-z_0-9]?[a-z][^a-zA-z_0-9]」等と書くのはやはり面倒です
から(^^;。

 ##正規表現の元々の定義って何を見れば解るんだろう。

[ ]
RE:03425 検索での正規表現に関する疑問No.03427
番頭++ さん 99/05/27 21:04
 
こんばんわです、

想像ですが、検索/置換の正規表現処理と強調表示でのそれとでは、処理している、
「秀丸」の処理、 C++ のコードが別なんです。
ですから、検索/置換の正規表現では「単語の検索」が出来ないんです ...

>##正規表現の元々の定義って何を見れば解るんだろう。

はじまりは、UNIX のソフトみたいです。それが元祖だとすると、
「秀丸」のそれとは仕様が、少し、かなり、異なるみたいです。

そうですよね !!! - Aさん

心理学の printing - [印刷] と訳すのかな ??? 見たいなものです。
初めて生まれて見たもの、初めて学んだ、それが、その人には、
親である、ガンソみたいです ...

そう言えば、「トキの赤ちゃん」は誰が親なんだろう ...
人間ではなく、「トキ」の両親であってほしい、と思います ...
赤ちゃんの気持ちはわかりませんが ...

[ ]
RE:03425 検索での正規表現に関する疑問No.03435
秀丸担当 さん 99/05/28 19:06
 
> 確かに仰る通りです。また「大文字・小文字」を区別するのは当たり前だ
>と思いますが、「単語の検索」は文字列同様出来ても問題ないような気がし
>ます。「[^a-zA-z_0-9]?[a-z][^a-zA-z_0-9]」等と書くのはやはり面倒です
>から(^^;。

たしかに、正規表現で単語の検索ができても問題無いように思います。
ただ単にこれは前からの仕様で、強調表示のほうでは単語の検索が
追加されました。
要望リストに入れておきます。



[ ]
RE:03435 検索での正規表現に関する疑問No.03442
ひろ さん 99/05/29 10:06
 
 秀丸担当様今日は、ひろです。
> たしかに、正規表現で単語の検索ができても問題無いように思います。
> ただ単にこれは前からの仕様で、強調表示のほうでは単語の検索が
> 追加されました。
> 要望リストに入れておきます。
 要望 list 入りしただけで嬉しい(^^)。あとは気長に待ちます。

[ ]