改行、行頭空白をスキップした検索No.16985
おしょう さん 04/03/29 11:38
 
行末に強制的に改行コードを入れ、行頭をスペースでインデントしたテキストで検索
できるマクロを作りかけているのですが、どうもうまくいきません。お知恵をお貸し
ください。

例:
  検索語を含む文で、検索
 語がこのように分割されて
 しまっている場合にも、検
 索語を3つとも検索したい
 のです。

[ ]
RE:16985 改行、行頭空白をスキップした検No.16986
白雲斎 さん 04/03/29 13:12
 
白雲斎と申します。

以下のマクロでいかがでしょうか?


// マクロ ここから -------------------------------------------
// 拡張検索

$META = "\\$()-|[]+*{}.?";
$SP = "[\\t\\n  ]*";

if( selecting )
{
    getsearch;
    $s = searchbuffer;
}
else
{
    $s = "";
}

$s = input("検索キーワード入力\n※メタ文字のエスケープは不要", $s);
if( result == false || $s == "" ) endmacro;

$keyword = "";
$a = char(ascii($s));
while( true )
{
    call RegexEsc $a;
    $keyword = $keyword + $$return + $SP;
    $s = rightstr($s, strlen($s) - strlen($a));
    $a = char(ascii($s));
    if( strlen($s) == strlen($a) )
    {
        call RegexEsc $s;
        $keyword = $keyword + $$return;
        break;
    }
}
searchdown2 $keyword, regular;
endmacro;

RegexEsc:
    if( $$1 != "" && strstr($META, $$1) != -1 ) return "\\" + $$1;
return $$1;
// マクロ ここまで -------------------------------------------


マクロの話題は、
「4.秀丸エディタ マクロ作者会議室」
がよろしいかと思います。


__________________________________________________
Do You Yahoo!?
http://bb.yahoo.co.jp/

[ ]
RE:16985 改行、行頭空白をスキップした検No.16989
秀まるお2 さん 04/03/29 16:29
 
 秀丸V4.00からあいまい検索が強化されてまして、改行/空白を無視して検索
することも出来るようになっています。

 それで足りる気がしますけど、どうでしょ?

 検索ダイアログボックス中の「あいまい検索」オプションをONにして、そのオ
プション右に出てくる「設定...」ボタンを押すと、あいまい検索オプションが
いろいろ出てきます。

[ ]
RE:16989 改行、行頭空白をスキップした検No.16991
白雲斎 さん 04/03/29 19:26
 
白雲斎と申します。

> 秀丸V4.00からあいまい検索が強化されてまして、改行/空白を無視して検索
>することも出来るようになっています。

間抜けな投稿をしてしまいました。
秀まるお2氏の言われるとおりです。
私の発言は忘れてください。


__________________________________________________
Do You Yahoo!?
http://bb.yahoo.co.jp/

[ ]
RE:16989 改行、行頭空白をスキップした検No.16993
おしょう さん 04/03/29 20:23
 
>秀丸V4.00からあいまい検索が強化されてまして、改行/空白を
>無視して検索することも出来るようになっています。

あ…。簡単に解決してしまいました。まったく気付かずにいました。

ありがとうございます。お騒がせして申し訳ありませんでした。

[ ]