検索・置換系

現在、3 つのサブルーチンが公開されています。


01.Searchdown
【説明】
//カーソル位置「以降」の語句を検索。有無をresultで判定。正規表現で検索。
//引数:検索語句(文字型)
//返値:result
【ソース】
Searchdown:
    $s=searchbuffer; #f=searchoption;    //検索バッファなど抜き出し
    searchdown $1,regular;
    setsearch $s, #f;    //検索バッファなど復元
    return result;
【使用例】
call Searchdown "<([^<>]|\\n)*>";
if(##result){
    message "見つかりました。";
}else{
    message "見つかりませんでした。";
}
【備考】
-
02.Searchup
【説明】
//カーソル位置「以前」の語句を検索。有無をresultで判定。正規表現で検索。
//引数:検索語句(文字型)
//返値:result
【ソース】
Searchup:
    $s=searchbuffer; #f=searchoption;    //検索バッファなど抜き出し
    searchup $1,regular;
    setsearch $s, #f;    //検索バッファなど復元
    return result;
【使用例】
call Searchup "<([^<>]|\\n)*>";
if(##result){
    message "見つかりました。";
}else{
    message "見つかりませんでした。";
}
【備考】
-
03.StrMatch
【説明】
//マッチした文字列を置換(正規表現は無理)
//引数:
//$1 = 置換をおこなう文字列
//$2 = 置換前の文字
//$3 = 置換後の文字
//返値:
//置換処理後の文字列
【ソース】
StrMatch:
    while( 1 ){
        call Separation_left $1, $2;    //区切りの左側取得
        $left = $return;
    
    //区切りの左側がある場合
        if( $left != "" ){
            $value = $value + $left + $3;
            call Separation_right $1, $2;    //区切りの右側取得
            $right = $return;
            if( $right != "" ){
                $1 = $right;
            }else{
                break;
            }
        }else{
        //区切りが行頭にある場合
            if( strstr( $1, $2 ) == 0 ){
                $value = $value + $3;
                call Separation_right $1, $2;    //区切りの右側取得
                $1 = $return;
                if( $1 == "" ){
                    break;
                }
            }else{
                $value = $value + $1;
                break;
            }
        }
    }//while END
    return $value;
【使用例】
$str = "test|test|test";
call StrMatch $str, "|", " ][ ";
$str2 = "[ " + $return + " ]";

insert $str + "\n→" + $str2 + "\n";

endmacro;
【備考】
Separation_left および Separation_right 併用のこと。

このページの先頭へ