|
おすぎさんこんにちは Iranoan です
> #num = 1;
> while(1){
> searchdown "(?\\1)>(.*?)<", regular;
> $word[#num] = gettext(seltopx, seltopy, selendx, selendy);
> escape;
> #num = #num + 1;
> }
>
> 次の文字列に適用すると
> >あ<
> ><
> >う<
>
> 結果は次の通りです。
> $word[1] = "あ";
> $word[2] = "あ";
> $word[3] = "う";
これは一致部分がないときでも sel〜 キーワードの更新すべき案件の気もしますね
しか変更すると、互換性などどのような問題が起きるやら
> $word[2] = "" とする方法はあるでしょうか?
実機で確認していませんが、
> searchdown "(?\\1)>(.*?)<", regular;
を
searchdown "(?<=>).*?(?=<)", regular;
として前方/後方一致を使うとなにか変化は有りますか?
これもだめなら
> searchdown "(?\\1)>(.*?)<", regular;
> $word[#num] = gettext(seltopx, seltopy, selendx, selendy);
を
searchdown ">.*?<", regular;
$word[#num] = gettext(seltopx + 1, seltopy, selendx - 1, selendy);
といったように、正規表現の部分一致を使うのではなく、マクロ関数側で一部を取り
出してはどうでしょう?
あと書き込まれたマクロは while 文の終了条件がありませんよね…
また古いバージョンを使い続けなければならない理由がなければ、設定依存をなくす
ために sel〜 より found〜 を使ったほうが良いでしょう
|
|