
はじめまして
Perl初心者です。
どうかご教示お願い致します。
20,a,12,34
19,a,12,34
18,a,12,34
17,a,12,34
16,a,12,34
15,a,12,34
14,a,12,34
13,a,12,34
12,asa,12,34
11,a,12,34
10,sasaa,12,34
9,a,12,34
8,asa,test,34asa
7,a,12,34
6,a,12,34
5,a,20,34
4,a,12,34
3,a,12,34
2,a,12,34
1,a,12,34
このようなCSVファイルがあり
1列目が「asa] 2列目が[test]
が一致する、3列目[34asa]を抽出させたいのですが
どのようにするのでしょうか?

No.4
- 回答日時:
1行をsplitで分割し1列目と2列目を比較すればよいかと。
while(<>){
@elm = split(/,/);
if ($elm[1] eq 'asa' && $elm[2] eq 'test'){
print $elm[3],"\n";
}
}
表示させることができました!
もう1つ教えてほしいです。
もし、テキストにそれらが該当しない場合
elsif($elm[1] ne 'asa' || $elm[2] ne 'test'){
print "検索結果はありません";
}
このようにもしたいのですが、これをifの後ろに入れて実行すると
検索結果はありませんが大量に表示されてしまいます。
どのように対処すればいいのでしょう・・・?
No.1
- 回答日時:
>1列目が「asa] 2列目が[test]
>が一致する、3列目[34asa]
一番左の列は0列目という意味でしょうか?
また列は4列固定で増減することはないでしょうか?
セパレータの「,」は特殊な条件で文字列としてつかうことはないですか?
上記条件がクリアになるならざっくり・・・
/(?<=,asa,test,).+/
でヒットさせればよいかと思います
ご回答ありがとうございます;;
1番左は0です!
「,」などの記号系は、入力しない(入力させないよう)にしております
yambejp様がご掲示くださった/(?<=,asa,test,).+/
では、1列目と2列目のみヒットなのですが、
1列目と3列目をヒットさせ、2列目を抽出という形もしたいです・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「abcで始まらない」を正規表現...
-
「何とかで始まり、何とかで終...
-
VBA EXCEL あるセルの中の一...
-
角カッコが含まれてるかどうか...
-
文字コードの%E3%80%とは何です...
-
フォントの色を保持したままセ...
-
CSVファイルの中で、「 , 」カ...
-
VBA 文字に半角が含まれて...
-
データにカンマが入ったCSVデー...
-
Excel 住所の分割(文字数制限...
-
openoffice calcで#DIV/0! の...
-
「一角」って何でしょうか
-
IEからEdgeへの移行に伴うIMEの...
-
gccでiconvを使った文字コード...
-
16進数の文字列を文章に変える
-
ローマ字文字列の半角←→全角変換
-
VBA 置換文字がみつからない時
-
COBOL・全角判定
-
CString から LPCTSTRの型に変換
-
EXCELからCSVにすると余計なカ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「何とかで始まり、何とかで終...
-
VBA EXCEL あるセルの中の一...
-
正規表現の否定先読みで、複数...
-
角カッコが含まれてるかどうか...
-
バッチファイルの正規表現を利...
-
「abcで始まらない」を正規表現...
-
正規表現 英数字を1つ以上含む...
-
Emeditorの正規表現を利用した...
-
CASLIIの穴埋め問題について。
-
if(str=='a' || str=='b' || st...
-
正規表現のAND条件記述手法
-
【abc】に【完全一致】する正規...
-
文字列から数値を抽出したいの...
-
XML::Xpathで部分一致検索をす...
-
ログファイルからキーワードを...
-
正規表現でのパイプ(or)を減...
-
正規表現で
-
条件式、htmやcgiやphpが含まれ...
-
CGI.pmで'&'が'&'に置き換...
-
拡張子の正規表現
おすすめ情報