Perlコーディング初心者質問スレ Part 38
■ このスレッドは過去ログ倉庫に格納されています
0089nobodyさん
04/10/13 12:41:40ID:???例えば、普通にリンクを貼るだけならできるのですが、
自サイトへはinner、他サイトへはouterというスタイルを適用したいと思っています。
ログの例:(MyIDを含むのが自サイトとします)
http://localhost/MyID/<BR>http://www.2ch.net/
出したい出力結果(HTML上):
<A href="http://localhost/MyID/"class="inner">http://localhost/MyID/</A><BR><A href="http://www.2ch.net/" class="outer">http://www.2ch.net/</A>
sub link { # 引数に渡すのはログ全体
$_[0] =~ s/([^=^\"]|^)((http|ftp|https)\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\,\|]+MyID[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\,\|]+)/$1<A href="$2" class="inner">$2<\/A>/g;
$_[0] =~ s/([^=^\"]|^)((http|ftp|https)\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\,\|]+)/$1<A href="$2" class="outer">$2<\/A>/g;
}
こう記述すると、前者も後者も全てouterになってしまいます。
if ($_[0] =~ /MyID/) {
$_[0] =~ s/([^=^\"]|^)((http|ftp|https)\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\,\|]+MyID[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\,\|]+)/$1<A href="$2" class="inner">$2<\/A>/g;
} else {
$_[0] =~ s/([^=^\"]|^)((http|ftp|https)\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\,\|]+)/$1<A href="$2" class="outer">$2<\/A>/g;
}
こうすると、今度は自サイトへのリンクは貼られるのですが、他サイトへのリンクは貼られなくなってしまいます。
上記の出したい出力結果を出すには、どのように記述したらよいのでしょうか。
■ このスレッドは過去ログ倉庫に格納されています