Perlについての質問箱 ..
[2ch|▼Menu]
397:デフォルトの名無しさん
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」そのものが入ってしまいます。



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4949日前に更新/153 KB
担当:undef