Diary

自動リンク


CGIに関するリクエストで、「タグを使用しても自動リンクを有効にして欲しい」というのがあったので、スクリプトを書き換えることにした。
ここで早速Pattern Matchingのregex extensionsが使えるのではと嬉しくなった。
つまりLookaround Assertionsを使って「URLの前に「="」または「=」がなければ自動リンクする」というふうに書けばいいと思ったのだがこれがなかなか上手く行かない。URLの前に「"」がある場合のnegative lookbehindがどうしても想定した通りに動作しない。(つまり「"」がなくてもあってもmatchするようにするということが出来ないのである。)
あれこれ試して最終的には何とか上手く動くようになった。
この辺の処理がさっさと書けないのは、理論的な思考能力に欠けている所為かと思われ、少し悲しい。

※コードは以下のようになっています。もしも間違いに気付かれた方がありましたらお教え下さると嬉しいです。

$pre = eval{ qr/(?$descrip =~ s/$pre(http:\/\/[\w\.\~\-\/\?\&\+\=\#]+)/<A HREF=$1 TARGET=$target1>$1<\/A>/iog;

※Lookaround Assertionsを使用しているのでperl5.005以降でないと機能しないと思います。すみません。ただしeval関数を使用しているので、文法エラーにはならないと思いますが。
2001年09月10日(月) No.11
Comment(0)

この記事へのコメントは以下のフォームからどうぞ

Name
E-Mail
URL
感想
1000文字まで
Icon Icon
投稿キー ナニ・ュ。シを右に記入して下さい
Pass
No. PASS