人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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

●質問者: katsube
●カテゴリ:ウェブ制作
✍キーワード:Google Namazu Perl STR オープンソース
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● cubick
●50ポイント

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


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


foreach $keywords (sort @words) {

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

}

◎質問者からの返答

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

処理内容は

・キーワードをボールド

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

(指定バイト数分)

となります(順不同)。

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ