Perlについての質問箱 34箱目
■ このスレッドは過去ログ倉庫に格納されています
0397デフォルトの名無しさん
2008/02/11(月) 02:25:54与えられた文字列の中に特定のキーワードを見つけると、それをリンクに変換するようにしたいと考えています。
例:
[google:hoge] → <a href="http://www.google.co.jp/search?q=hoge">Googleでhogeを検索</a>
[mixi:xxxxx] → <a href="http://mixi.jp/show_friend.pl?id=xxxxx">mixi</a>
http://xxx.xx → <a href="http://xxx.xx">http://xxx.xx</a>
こういった置換を行うコードを1つずつ書くのではなく、
例えば、以下のような置換パターンをセットしたハッシュを用意しておき
%hash = (
'\[google:\w+\]' => '<a href="http://www.google.co.jp/search?q=$1">Googleで$1を検索</a>',
)
forやforeachで回しながら自動的に置換したいのですが、どのようにすればよいでしょうか。
(エンコードとかは考えない方向で)
foreach my $key (keys %hash)
{
$input_str =~ s/$key/$hash{$key}/g;
}
とやった場合、変換後の文字列の中に「$1」そのものが入ってしまいます。
■ このスレッドは過去ログ倉庫に格納されています