- 397 名前:デフォルトの名無しさん [2008/02/11(月) 02:25:54 ]
- 現在、与えられた文字列を読み込み、それを元にHTMLを出力するプログラムを作成しています。
与えられた文字列の中に特定のキーワードを見つけると、それをリンクに変換するようにしたいと考えています。 例: [google:hoge] → <a href="www.google.co.jp/search?q=hoge">Googleでhogeを検索</a> [mixi:xxxxx] → <a href="mixi.jp/show_friend.pl?id=xxxxx">mixi</a> xxx.xx → <a href="xxx.xx">xxx.xx</a> こういった置換を行うコードを1つずつ書くのではなく、 例えば、以下のような置換パターンをセットしたハッシュを用意しておき %hash = ( '\[google:\w+\]' => '<a href="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」そのものが入ってしまいます。
|

|