大文字/小文字の区別をしない正規表現No.01461
ひろ さん 03/05/28 12:12
 
 秀まるおさん、秀丸担当さん、皆さん今日は、ひろです。
 スレッドとしては、http://www.maruo.co.jp/hidesoft/8/ ですが、秀丸の
使用に関することなので、こちらで伺います。

 http://www.maruo.co.jp/hidesoft/8/x13026_.html#13026 にて
>  ちなみにこのバージョンから、大文字/小文字を区別しない正規表現の検索が
> 出来ます。
>
>  マクロから実行する時は、
>
>    searchdown "..", regular, nocasesense;
>
>  のように、"nocasesense"という新しいキーワードを付けないとダメです。
> regularやfuzzyを付けない場合は、従来通り、"casesense"を付けるか付けない
> かという仕様です。
と有ります。このキーワード nocasesense は
searchdown "[A-Z]+", regular;
等としたときに上位互換性を持たせるためかと思います。
 これは至極妥当なのですが、
setsearch $s, #n;
とした時はどうなるのでしょう? 今までなら正規表現は必ず大文字/小文字を
区別するので、正規表現を用いる場合は、
setsearch $s, 16;
としていたでしょう。しかし大文字/小文字を区別した正規表現が可能になる
と、こちらはキーワードではなくフラグなので、同じことをするには、
setsearch $s, 18;
とする必要がでてきます。(鶴亀のエディタ・ウィンドウで確認) よって、
setsearch に関しては互換性が保たれないことになります。

 このことから
(1) (置換を含め) setsearch だけ以外の検索系は互換性が保たれる
    →中途半端
(2) 新規利用者は、casesense, nocasesense の 2 つのキーワードがある意味
    /使い分けが分かりづらい
という結果になります。更に検索系の文は既にキーワード word で、「単語の
検索で"abc"を検索する時、"abc123"にはヒットさせない」の設定が追加され
た時点で、完全な上位互換性が失われています。

 こうなると今回の「大文字/小文字の区別をしない正規表現」だけ
nocasesense を追加して、互換性を考慮してもあまり意味がないと思うのです
が如何でしょうか? 個人的には互換性を失いますが、秀丸 Ver.3.19 の
searchdown "[A-Z]+", regular;
を Ver.3.20 で同じことをするには、
searchdown "[A-Z]+", regular, casesense;
とする必要があるとした方がスッキリすると思います。

[ ]
RE:01461 大文字/小文字の区別をしない正No.01462
秀まるお さん 03/05/28 12:56
 
 現状で、たしかにsetsearchが非互換になってしまう訳ですが、これはこれで
あまり問題ないと思います。

 普通、setsearchはマクロ中で検索系文を実行する時に、以前の検索履歴を復
元するために使うと思います。つまり、searchoptionで取得した物をそのまま
setsearchすると思います。

   searchdown "aaa", regular;

 とするのをわざわざ

    setsearch "aaa", 16;
    finddown;

 のように書く人はまずいないんじゃないかと思う訳で、そうであれば、互換性
の問題はまず出ないと思います。

 casesenseとnocasesenseの2つのキーワードがあるのはたしかにわかりにくい
と思いますけど、正規表現での検索を使ったマクロは非常に多く存在してるはず
なので、それらが全部書き換えになる事態は避けたいと思います。

-------------------
 ちなみにですが、次の秀丸のバージョン番号は4.0にする可能性が高いです。

[ ]
RE:01462 大文字/小文字の区別をしない正No.01463
ひろ さん 03/05/28 17:21
 
 秀まるおさん今日は、ひろです。
>  普通、
<中略>
>     setsearch "aaa", 16;
>     finddown;
>
>  のように書く人はまずいないんじゃないかと思う訳で、そうであれば、互換性
> の問題はまず出ないと思います。
 確かにこの様に書く人が少なければその通りです。ただ私自身は「普通でな
い」様で、
setsearch "[A-Za-z]+", 16;
while( result ){
  tohankaku;
  finddown;//検索条件を毎回設定しない分、速いと良いなあ〜
}
に類することを良くします(^^)。因みに自作でない物も含め手元に有る公開さ
れている
・TeX Module Control
・秀丸 正規表現検索補助マクロ (マクロ実行者の設定による)
・鶴亀メール作成支援マクロ
はフラグに 16 を指定しています。まあ
> 正規表現での検索を使ったマクロは非常に多く存在してるはず
> なので、それらが全部書き換えになる事態
よりは少なそうです。

 実装され公開されているのが、鶴亀 Ver.2.84, 2.85, 2.86 で日が経ってい
ないので、
・上位互換性
  →nocasesense を容認 (既に word で互換性が保たれていない)
・分かりやすい仕様
  →正規表現も casesense で区別
のどちらを優先するか、他の方の意見も伺いたいところです。

>  ちなみにですが、次の秀丸のバージョン番号は4.0にする可能性が高いです。
 そんなに大きな変更になるんですね。てっきり
http://www.maruo.co.jp/turukame/3/x01453_.html
>  今、訳あって秀丸のバグ調査&修正をしています。
から、不具合修正が中心で、機能追加は無いと思っていました。
 ##メインのヴァージョン番号が変わるなら、尚更マクロの仕様変更があって
も良い気がしたりして...。

[ ]
RE:01463 大文字/小文字の区別をしない正No.01464
秀まるお さん 03/05/28 18:18
 
 んでは、setsearchとは別に、setsearch2関数を追加しようとなぁと思います。

 setsearchは従来通り、つまり、regularのみをONにしても大文字/小文字区別
ありになるという仕様です。具体的には16を指定しても実際には18が指定された
ものと解釈されます。

 setsearch2は、16を指定したらそのまま16が指定された扱いという…。

 どうでしょ?

[ ]
RE:01464 大文字/小文字の区別をしない正No.01465
ひろ さん 03/05/28 18:36
 
 秀まるおさん今日は、ひろです。
>  んでは、setsearchとは別に、setsearch2関数を追加しようとなぁと思います。
 setsearch の互換性より、「何処かで互換性を犠牲にしなければならないこ
とが起きてくるだろうから、searchdown 等検索系の文もスッキリした仕様に
した方が良い気がする。」というのが投稿の趣旨だったので、追加して頂くに
は及びません。ただ更新履歴とマクロ・ヘルプに一筆必要に成るでしょうね。
 ##って、秀まるおさんのことだから、この投稿を読まれる頃には追加・修正
が終わっているかもしれませんが...。

 纏めると
・nocasesense の追加
・setsearch2 の追加して頂くには及ばない
ということ理解しました。
 ##後者は、理解といわないだろうが日本語が解らない(;_;)。

[ ]
RE:01465 大文字/小文字の区別をしない正No.01466
秀まるお さん 03/06/03 18:16
 
 現段階で、setsearch2などは追加せず、searchdown等のオプションに
nocasesenseを追加した状態になってますが…。このまま秀丸担当に引き継ぎま
す。

[ ]
RE:01466 大文字/小文字の区別をしない正No.01467
ひろ さん 03/06/03 19:00
 
 秀まるおさん今日は、ひろです。
>  現段階で、setsearch2などは追加せず、searchdown等のオプションに
> nocasesenseを追加した状態になってますが…。このまま秀丸担当に引き継ぎま
> す。
 ありがとございました。

[ ]
RE:01466 大文字/小文字の区別をしない正No.01601
ひろ さん 03/06/12 12:14
 
 秀丸担当さん今日は、ひろです。
>  現段階で、setsearch2などは追加せず、searchdown等のオプションに
> nocasesenseを追加した状態になってますが…。このまま秀丸担当に引き継ぎま
> す。
 念の為ですが、マクロ・ヘルプにこの nocasesense についての記載がない
ようです。

[ ]
RE:01601 大文字/小文字の区別をしない正No.01606
秀まるお さん 03/06/12 15:58
 
 実は既にnoregularというキーワードも追加されてます。まだ仕様変更が起き
る可能性が高いので、しばらくヘルプは書かない方がいいと思います。

[ ]
RE:01606 大文字/小文字の区別をしない正No.01613
ひろ さん 03/06/12 16:40
 
 秀まるおさん今日は、ひろです。
>  実は既にnoregularというキーワードも追加されてます。
 実は既に確認済みです(^^)。
> まだ仕様変更が起き
> る可能性が高いので、しばらくヘルプは書かない方がいいと思います。
 成る程。

[ ]
RE:01613 大文字/小文字の区別をしない正No.01620
秀まるお さん 03/06/12 16:57
 
 秀丸担当は改版履歴に書いてくれませんでしたが、(^^;

 単語検索が他の検索オプションと同時に指定できるようになっています。とい
う変化もありました。

[ ]
RE:01620 大文字/小文字の区別をしない正No.01633
ひろ さん 03/06/12 19:09
 
 秀まるおさん今日は、ひろです。
>  単語検索が他の検索オプションと同時に指定できるようになっています。とい
> う変化もありました。
 実はこちらも確認済みです(^^)。setsearch と searchdown のマクロも問題
ありません。
 ##grep はマクロ共々確認してないけど、まあいっか。

[ ]
RE:01633 大文字/小文字の区別をしない正No.03340
Iranoan さん 03/11/01 17:17
 
 秀丸担当さん今日は、Iranoan です。
 マクロ・ヘルプに書かれていないので、ひょっとして正式採用でないかもし
れませんが、searchdown 等では使える noregular が grep では使えません。
仕様が固まりましたら、grep でも検索と同様に、正規表現ではないあいまい
検索を可能にして頂ければ幸いです。

[ ]
RE:03340 大文字/小文字の区別をしない正No.03342
秀丸担当 さん 03/11/05 18:47
 

> マクロ・ヘルプに書かれていないので、ひょっとして正式採用でないかもし
>れませんが、searchdown 等では使える noregular が grep では使えません。
>仕様が固まりましたら、grep でも検索と同様に、正規表現ではないあいまい
>検索を可能にして頂ければ幸いです。

対応するようにします。
V4.00での仕様としては、非対応でお願いします。

[ ]
RE:03342 大文字/小文字の区別をしない正No.03343
Iranoan さん 03/11/05 19:12
 
 秀丸担当さん今日は、Iranoan です。
> >noregular が grep では使えません。
> >仕様が固まりましたら、grep でも検索と同様に、正規表現ではないあいまい
> >検索を可能にして頂ければ幸いです。
>
> 対応するようにします。
 有り難うございます。

[ ]