- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:perlで検索 カンマ n番目)
Perlでカンマ区切りのデータから指定されたワードを抽出する方法
このQ&Aのポイント
- Perlのプログラムで、カンマ区切りのデータから指定されたワードを抽出する方法を教えてください。
- 特定のワードを含む行のみを抽出したい場合、`grep`関数を使用することができます。
- 抽出した行から特定のワードのみを取り出す場合、正規表現を使用して抽出することができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
push @Search, [$field[2], $line] if $field[2] =~ /s/; とすると、配列 @Search は配列の配列になります。 [[2 番目のフィールド, 行全体], [2 番目のフィールド, 行全体], ...]
その他の回答 (2)
- donttalktome
- ベストアンサー率83% (10/12)
回答No.2
正規表現も良いですが、2番目のフィールドとわかっているのなら、 コンマで分割してからマッチすれば良いような。 foreach my $line (@DATA) { my @field = split /\s*,\s*/, $line; push @Search, $field[2] if $field[2] =~ /s/; }
質問者
お礼
説明不足で申し訳ないです;;
質問者
補足
説明不足でした。すみません・・・ ご掲示くださったソースで、しっかり「sを含む文字列」を探しだすことに成功しました。 ただ、フィールドの[0][1][3]もほしいのです・・;; ご掲示くださったソース での実行結果 1,a,w,e,r 2,a,w,e,r 2,e,asa,v,ssss 3,s,ssss,a,a ↓ asa ssss 結果的には 1,a,w,e,r 2,a,w,e,r 2,e,asa,v,ssss 3,s,ssss,a,a ↓ 2,e,asa,v,ssss 3,s,ssss,a,a (@Search)
- donttalktome
- ベストアンサー率83% (10/12)
回答No.1
/\A(?:[^,]+,){2}$Search/ はどうでしょうか。
質問者
お礼
ありがとうございます。 最後に、もう1つご教示お願いいたします
質問者
補足
ご回答ありがとうございます。 やりたいことはこれです! しかし、1文字目の文字だけでなく 文字列の中に含む場合、どうするのでしょうか・・・? 例) 検索ワード 「s」 ヒットワード 「moshi」
お礼
ありがとうございました! 実行でき解決できました!