Perlについての質問箱 22箱目
■ このスレッドは過去ログ倉庫に格納されています
0375デフォルトの名無しさん
2006/02/13(月) 19:14:27例えば、キーワードを "定食","弁当"...と仮定して、入力ファイル内の
[うなぎ]定食 [焼肉]ランチ [さば]弁当
をリストアップしたいのです。素人考えでしょうが、以下のように書きました。
#! usr/locsl/bin/per
@keyword = ("定食","弁当","ランチ","セット"); #キーワードのリストを配列に。
while (<>) {
$sentence = $_; #入力の各行を、変数$sentenceに。
if ($sentence =~ /\[[^\[]*?\]/ ) { #ブラケットがある行を、正規表現で探す(一行に複数あるかもしれない)。
foreach (@keyword) { #キーワードをひとつずつ当てはめ。
if ($sentence =~ /(\[[^\[]*?\]$keyword)/g) { #ブラケット+キーワード
ptint "&$\n"; # &$で、前の行で取り出した行を印刷。
}}}
どうしても ]定食 ]ランチ と、後部ブラケット以下しか、表示されません。print $1にしても同じです。
自分でも考えてみたつもりです。どなたか、教えてください。
■ このスレッドは過去ログ倉庫に格納されています