正規表現検索不具合No.04335
☆☆☆゛☆ さん 99/10/27 14:57
 
こんにちは。白星です。
秀丸の正規表現検索について。

以下のようなテキストを対象に検索します。
(ただし、アスタリスク"*"はTABのことです。
---------------from here----------------
DRIVEE:    *LD*A,01H;***DRIVE_F <-- 1
           *LD*(DRIVE_F),A
STOPINE:*LD*A,02H***;DRIVE_F <-- 2
**LD*(DRIVE_F),A
-----------------to here----------------

これで、秀丸に正規表現検索させます。
LD\t\(DRIVE_F
つまり、LDの次にTABがあって、そのあと(DRIVE_Fがある
ような部分を検索させるわけですが、
上のテキストにはそのような部分が2箇所あるにも関わらず、
検索ヒットするのは1箇所だけなのです。

秀丸エディタ Ver3.01を使用しています。
OSはWindows98です。

JRE32.DLLが新しくなっていないかと探してみましたが、
インターネットにもニフティにも単体では存在しない
ようなので、こちらで質問させていただきました。
みなさんの所でも同じ現象になるか試してください。

サポートの方、再現するようであれば、対策方法を
教えてください。よろしくお願いします。

白星


[ ]
RE:04335 正規表現検索不具合No.04339
秀丸担当 さん 99/10/27 17:55
 
>LD\t\(DRIVE_F
>つまり、LDの次にTABがあって、そのあと(DRIVE_Fがある
>ような部分を検索させるわけですが、
>上のテキストにはそのような部分が2箇所あるにも関わらず、
>検索ヒットするのは1箇所だけなのです。

やってみたところ、例文の2行目と4行目の2箇所、検索
されました。
他の方で起きる方いるでしょうか?
タブと見えていたのが実は空白だったとか?

[ ]
RE:04339 正規表現検索不具合No.04341
番頭++ さん 99/10/27 18:24
 
>他の方で起きる方いるでしょうか?
>タブと見えていたのが実は空白だったとか?

うちも正常に動きましたが ???

[ ]
RE:04341 正規表現検索不具合No.04342
番頭++ さん 99/10/27 18:42
 
>>他の方で起きる方いるでしょうか?
>>タブと見えていたのが実は空白だったとか?
>
>うちも正常に動きましたが ???

こんな感じで、タブ前後の空白をとればいいのでは ...

//*5    a1.mac - 1999/10/27 - K.Nakatake
    $s1 = "[\x20\x81\x40]+\\t|\\t[\x20\x81\x40]+|[\x20\x81\x40]+\\t[\x20\x81
\x40]+";    //  Tab
          replacedown $s1, "\\t", regular, inselect;
endmacro;

[ ]
RE:04335 正規表現検索不具合No.04344
ひろ さん 99/10/27 19:36
 
 ☆☆☆゛☆さん今日は、ひろです。
> 以下のようなテキストを対象に検索します。
> (ただし、アスタリスク"*"はTABのことです。
> ---------------from here----------------
> DRIVEE:    *LD*A,01H;***DRIVE_F <-- 1
>            *LD*(DRIVE_F),A
> STOPINE:*LD*A,02H***;DRIVE_F <-- 2
> **LD*(DRIVE_F),A
> -----------------to here----------------
>
> これで、秀丸に正規表現検索させます。
> LD\t\(DRIVE_F
> つまり、LDの次にTABがあって、そのあと(DRIVE_Fがある
> ような部分を検索させるわけですが、
> 上のテキストにはそのような部分が2箇所あるにも関わらず、
> 検索ヒットするのは1箇所だけなのです。
 私の環境では 2 箇所 hit します。

 以下は正規表現とは関係ないですが、ひょっとして sample 中の 2 行目
LD の直前に cursor のある状態で検索を始められていませんが? その場合下
検索を行っても 2 つ目にしか hit しません。これは秀丸の検索が「cursor
以下 (又は以上) を検索」ではなく「cursor よりうしろ (又は前) を検索」、
つまり cursor 位置の文字を検索対象にしないという仕様のためです。

[ ]
RE:04344 grepでした。No.04346
☆☆☆゛☆ さん 99/10/28 13:36
 
秀丸担当さん、番頭++さん、ひろさん、レスありがとうございました。
私の表現がまずかったのです。申し訳ありません。

前回の私の発言から4行をコピー&ペーストしてファイルに保存し、
検索(S)→検索(F)ではなく、
検索(S)→grepの実行(G)でやってみてください。

[ ]
RE:04346 grepでした。No.04348
ながさわ さん 99/10/28 14:35
 
こんにちは、長澤です。

>前回の私の発言から4行をコピー&ペーストしてファイルに保存し、
>検索(S)→検索(F)ではなく、
>検索(S)→grepの実行(G)でやってみてください。

でますよ。
う〜ん、『ファイル名一覧だけ作成』になっていませんか?
これにチェックが付いていると、『一覧だけつかられる』ので
一つのファイルに複数のヒットがあっても一つかでません。
と云うか、最初のヒットで検索をうち切ります。

[ ]
RE:04348 grepでした。No.04354
秀丸担当 さん 99/10/29 17:41
 
>>前回の私の発言から4行をコピー&ペーストしてファイルに保存し、
>>検索(S)→検索(F)ではなく、
>>検索(S)→grepの実行(G)でやってみてください。
>
>でますよ。

私のところでもgrepでも出ました。

[ ]