鶴亀でのマクロNo.21200
キョウヤ さん 05/01/09 17:01
 
鶴亀のマクロで SetFindPackとFindDownIncludeについてお聞きしたいことがありま
す。
これらの関数でタグ付き正規表現は使用出来ないのでしょうか?
使用しなければヒットするのですけど、
¥fで挟むとヒットしなくなりました。

一覧から本文を一括で検索してその文字を使用したいのです。
何か方法があれば宜しくお願いします。

[ ]
RE:21200 鶴亀でのマクロNo.21203
山紫水明 さん 05/01/09 21:10
 
 キョウヤさん,こんばんは。

>鶴亀のマクロで SetFindPackとFindDownIncludeについてお聞きしたいことが
>あります。
>これらの関数でタグ付き正規表現は使用出来ないのでしょうか?

 タグ付き正規表現は置換で用いるもので,これらの関数では用いることはでき
ないと思います。

>一覧から本文を一括で検索してその文字を使用したいのです。

 やりたいことを具体例を挙げて説明していただくと,コメントがつきやすいか
も知れませんね。

     では, (^^)/~
                                        山紫水明(ユーザー)
                                        SANSHISUIMEI

[ ]
RE:21203 鶴亀でのマクロNo.21205
キョウヤ さん 05/01/09 22:02
 
山紫水明さん、こんばんは。
> タグ付き正規表現は置換で用いるもので,これらの関数では用いることはでき
>ないと思います。
なるほど、そうでしたか。
勉強不足です。

> やりたいことを具体例を挙げて説明していただくと,コメントがつきやすいか
>も知れませんね。
すみません、質問の仕方が悪かったようですm(_ _)m

#n = dllfunc("SetFindPack", "(\"(^(http).*[0-9]*)\n$\",regular, nocasesense,
target=body),subfolder=0,inmail=0");
#n = dllfunc("FindDownInclude");

こんな感じで特定のURLを検索し、それをブラウザに渡して開こうと思ったんです。
その為、正規表現で検索して後方参照出来ないかなと考えてました。
後方参照はやはり使えないのでしょうか?
お手数ですけど宜しくお願いします。


[ ]
RE:21205 鶴亀でのマクロNo.21207
秀まるお2 さん 05/01/09 23:08
 
 URLを探してそれを開くってことなら、例えば検索系の文でurlを探して、その
urlの先頭位置にカーソルを(moveto等で)移動して、そこでopenbyshellを実行
すればいいと思います。

 具体的なマクロ例としては、こんな感じです。

    loaddll "tkinfo.dll";
    #n = dllfunc("SetFindPack", "(\"(^(http).*[0-9]*)\n$\",regular,
    nocasesense,target=body),subfolder=0,inmail=0");
    #n = dllfunc("FindDownInclude");
    if( #n != 0 ) {
        #br = browsemode;
        if( #br ) {
            browsemodeswitch;
        }
        gofiletop;
        searchdown2 "(^(http).*[0-9]*)\n$", regular, nocasesense;
        if( result ) {
            if( selecting ) {
                #x = seltopx; #y = seltopy;
            } else {
                #x = x; #y = y;
            }
            moveto #x, #y;
            message "a";
            openbyshell;
        }
        if( #br ) {
            browsemodeswitch;
        }
    }

 タグ付き正規表現についてですが、鶴亀メールの「\f」で区切るやり方は、そ
もそも、JRE32.DLLを使って無理矢理タグ付き正規表現するために僕が独自に編
み出した方式です。今はもうHmJre.dllという自前のDLLを使っているので、しい
てそういう独自形式にする必要性はありません。なので、将来的には、

 (...式1...)(...式2...)(...式3...)

 のように指定したら、その式1〜式3にマッチした部分を\1,\2,\3みたいな感じ
で取り出せるような、そういう世の中標準的なタグ付き正規表現を(HmJre.dll
側で)対応したいなぁと思っています。もちろん従来との互換性も維持するため
に、「\f」を含んでいたら従来と同じタグ付き正規表現という意味にすることも
忘れないつもりです。

 検索結果から「\1」等に相当する部分を取り出せるマクロ命令というか、
HmJre.dllの関数も用意すればきっとそれが役に立つような気がします。

[ ]
RE:21207 鶴亀でのマクロNo.21211
キョウヤ さん 05/01/10 15:45
 
こんにちは、秀まるお2さん。
メール一覧の検索からカーソルを移動してURLを得る方法なんて思いつきませんでした。
改めて鶴亀の多機能さを感じました。
教えて頂いたマクロを試したところ、自分が考えていた通りの動作をしました。
これを参考に少しだけ手を加えて使用しています。
お忙しいところ、本当にありがとうございます。

> タグ付き正規表現について
なるほど。そういう経緯があってそういう方法になっていたんですね。
最初perlのやりかたで書いてしまい失敗しました。
秀まるお2さんが言われるような、世の中標準的なタグ付き正規表現だと、
ますます使いやすくなって面白そうです。

> 検索結果から「\1」等に相当する部分を取り出せるマクロ命令
検索の使い方の幅が広がって色々便利になりそうですね。
いつか実装されたら色々使ってみたいです。

それでは本当に有り難うございました。

[ ]