++Diary++

2001年09月10日の日記

自動リンク
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

この記事へのコメント

この記事へのコメントは以下のフォームからどうぞ
Name
E-Mail
URL
感想
(1000文字まで)
Pass

No. PASS
 OR AND
スペースで区切って複数指定可能
<<  2001年09月 >>
      1
2345678
9101112131415
16171819202122
23242526272829
30      

2001年09月10日(月)
自動リンク

++HOME++

[Admin] [TOP]
shiromuku(fs4)DIARY version 4.00