Perl(5.8)で、Googleの検索結果画面の説明文のような処理を考えています。なるべく高速,低負荷な物を教えてください。


$str=’1024byte程度の文字列。’;
$q=’検索ワード’;

$str中に$qが含まれる場合、該当部分を太字に、その周辺の文字列を抜き出す。
 ※$qには複数のキーワードが指定される
  こともあり、必ず半角スペースで区切
  られることが約束されている。

例えば、オープンソース(namazuなど)のこういった処理が参考になるなど同等の処理を行っているページを教えていただいたり、ソースずばりを教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/12/30 16:31:19
  • 終了:--

回答(1件)

id:cubick No.1

cubick回答回数125ベストアンサー獲得回数362005/12/31 20:18:12

ポイント50pt

以下のコードでどうでしょう?


my @words = split(/ /,”$q”);


foreach $keywords (sort @words) {

$str =~ s|$keywords|<b>$keywords</b>|g;

}

id:katsube

んー、すみません、ワタシの書き方が悪かったです。

処理内容は

 ・キーワードをボールド

 ・キーワード周辺の文字列を抜き出す

  (指定バイト数分)

となります(順不同)。

キーワード周辺とはそのキーワードの前Xバイト、後Yバイトという意図です。

 ※日本語処理のことを考慮してあれば

  なお良いですが、そこまでは問いません。

2006/01/05 02:00:04

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません