正規表現で、タグで囲まれた文字列はマッチしたくない
[上に]
[前に]
[次に]
M1
1999/08/03(火) 21:15:04
Perlを使って、ファイルの中の
http://www.hoge.com/
を
<a href="http://www.hoge.com/">http://www.hoge.com/</a>
にする、つまり、ハイパーリンクできるようにするスクリプトを作りたいと思っています。
while(<FILE>){
s/(http:\/\/\S*)/<a href="$1">$1<\/a>/ig;
}
とすれば良さそうですが、
<a href="http://www.hoge.com/">http://www.hoge.com/</a>
のような文字列が、
<a href="<a href="http://www.hoge.com/">http://www.hoge.com/</a>"><a href="http://www.hoge.com/">http://www.hoge.com/</a></a>
と2重にタグで囲まれてしまいます。
これを回避して、タグで囲まれていない場合にのみ、<a>で囲むようにしたいのですが、どうしたらよいでしょうか?
ふじ
1999/08/03(火) 21:23:09
http://www.din.or.jp/~ohzaki/perl.htm#AutoLink
こんなのがあります。
ST
1999/08/03(火) 21:24:11
このラウンジのスクリプトを参照してみてはいかがですか。
http://www.tohoho-web.com/wwwlng.htm
ちなみに
s/(http:\/\/[a-zA-Z0-9\.\/\-+#_?~&%=^\@:;]+)/<A HREF="$1">$1<\/A>/g;
こんなふうにやっていますが。
ST
1999/08/03(火) 21:25:56
すいません。質問をきちんと読んでいませんでした。上の発言はなかったことに……m(_)m
[上に]
[前に]
[次に]