GREPMakerアシストの正規表現について

昨日のアシスト GREPMaker で「正規表現が使える」と書いたのですが、自分でも「正規表現」って何か分かってない。今は一応把握してるものの、少し離れれば忘却は必至。自分の記憶力ほど、頼りにならないものはないですもん。
DraftPad用の置換アシストを作成するアシスト GREPMaker


まずは例題。一昨日の「タグ付きリンクの作成」をやってみます。用意するのは下記の通り。このgrepは何をしてるのか。

grep(/ (.+):http:(.+) /g , "<a href=\"http:$2\">$1</a>")

(ありゃ? ¥ になってますが、\ に読み替えてください。バックスラッシュです。はてなは引用文にバックスラッシュが使えないらしい)



・書式は「grep(/変換前/g , "変換後")」。上記のgrepは「 (.+):http:(.+) 」を「<a href="http$2">$1</a>」に置き換えてるわけです。
・変換前の「(.+)」は「あらゆる文字列」を示します。これが変換後の「$1」と「$2」に代入される。登場順に数字が付きます。
・変換前の呪文「 (.+):http:(.+) 」は、たとえば「 ググる:http://www.google.co.jp 」といった文字列にヒットします。「空白で始まり、文字列(ググる)があって、:http:があって、さらに文字列(//www.google.co.jp)があって、空白で終わる部分」がこの呪文の意味。
・変換後はリンク・タグ。ただ、引用符「"」がそのままでは使えないので、「\"」のように「\」を付け対処してます。$1と$2でURLアドレスとタイトルを補完。後はGREPMakerアシストを走らせ、置換用アシストに変換。

draftpad://self/web?source=<script>location.href=%22draftpad:///webdelegate?load=f%22;f=function(q){t=q.t;s=q.s;p=q.p;l=q.l;try{t=t.replace(/ (.+):http:(.+) /g ,%22<a href=\"http:$2\">$1</a>%22);draftpad.replace(t,t.length,0);}catch(e){alert(e)}}</script>&t=<@@>&s=<@>&p=<#LOC>&l=<#LEN>

DraftPadでリンクの自動生成をするアシスト LinkMaker


つまりワイルドカードが使えるので、文字を入れ替えたり、付け加えたりが簡単になる。それが正規表現の強み。文章が長くなればなるほど、見落としは必ず生じる。そんなときは、アシストを使い、手作業の手間を減らす。あなたもハッピー、わたしもハッピー。
そんなわけで、個人が作ったアシストの書式仕様なんて、もはや誰も読んでないだろうなあ。でも、自分まで忘れると困るので、覚書を兼ねて。