From: Shin'ya Adzumi Date: 2002-03-10T20:51:44+09:00 Subject: [ruby-list:34289] Re: 簡易検索エンジンにキーワードハイライト機能を持たせる あづみです。 fukumit wrote: > キーワードがタグの要素の一部であった場合には > タグを「破壊」しないよう、以下のスクリプトを書いてみたのですが、 > 正しく動きません。 どういうパターンでどう意図しているのにどういう結果が返ってきて 正しく動いてないと判断しているのか分からないのですが、 > if line =~ /<.*?[^>].*?#{markup}.*?>/ # タグの要素の場合は if line =~ /<[^>]*?#{markup}.*?>/ # タグの要素の場合は にすれば良いんじゃないでしょうか。後は、#{markup} の部分は #{Regexp::escape(markup)} にした方が良いような気がします。 まあ、その前に私だったら、keyword を Regexp じゃなくて String の ままにしておいて、 if line =~ /#{keyword}/ then line = line.gsub(/(?:(<.*?>)|(#{keyword}))/){ $1||"#{$2}" } end という感じにしちゃうかな? 安積伸弥 adzumi@denpa.org