[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 07/03 13:37 / Filesize : 153 KB / Number-of Response : 618
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlについての質問箱 34箱目



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」そのものが入ってしまいます。







[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<153KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef