Perlについての質問箱 34箱目at TECH
Perlについての質問箱 34箱目 - 暇つぶし2ch397:デフォルトの名無しさん
08/02/11 02:25:54
現在、与えられた文字列を読み込み、それを元にHTMLを出力するプログラムを作成しています。
与えられた文字列の中に特定のキーワードを見つけると、それをリンクに変換するようにしたいと考えています。

例:
  [google:hoge] → <a href="URLリンク(www.google.co.jp)">Googleでhogeを検索</a>
  [mixi:xxxxx]  → <a href="URLリンク(mixi.jp)">mixi</a>
  URLリンク(xxx.xx)<)">URLリンク(xxx.xx<)

こういった置換を行うコードを1つずつ書くのではなく、
例えば、以下のような置換パターンをセットしたハッシュを用意しておき

  %hash = (
    '\[google:\w+\]' => '<a href="URLリンク(www.google.co.jp)">Googleで$1を検索</a>',
  )

forやforeachで回しながら自動的に置換したいのですが、どのようにすればよいでしょうか。
(エンコードとかは考えない方向で)

 foreach my $key (keys %hash)
 {
   $input_str =~ s/$key/$hash{$key}/g;
 }

とやった場合、変換後の文字列の中に「$1」そのものが入ってしまいます。



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch