CSVデータの行のフィールドに電子メールアドレスを入力したいが、リストにカンマが含まれている。コンマで区切られた電子メールアドレスのリストである単一のCSVフィールドを抽出する方法
したがって、フィールド内のコンテンツも分割します。つまり、split
コマンドでこれを行う方法しかわからないため、このフィールドの内容を制御できません。
例データ:私は$fileLine[3]
を使用
12/01/2017, billybob123, [email protected], [email protected], [email protected], AB, [email protected], \\123\abc
# Open file for read
while (my $fileLine = <READ>) {
chomp $fileLine;
my @row = (split ',', $fileLine);
print $fileLine[3]\n\n";
}
。私が欲しい結果が
[email protected], [email protected]
ですが、私は、このフィールド内のカンマ区切りの電子メールアドレスの数が動的である
[email protected]
を取得します。
'@'文字を持つ文字列を取得できますか? 'my @addrs = grep {/ @ /} split /、/ $ fileLine;' – toolic
どうすればいいですか?あなたが 'A、B、C、D'を持っていれば、どのツールが' A'と 'B、C'と' D'フィールドが必要だと知ることができますか? "フィールド"とは何かの基準が存在しない限り。 – zdim
スタンダードCSVパーシングライブラリを使用する!真剣に、私たちはこの質問を週に数回受け取ります。 CSVの解析は簡単ではなく、コードは作成され、テストされています。あなた自身に好意を持ち、cpanでCSVライブラリを探して使ってください。すべてのコーナーケースを処理します。特定のケースでは、CSVが壊れているように見えます。フィールドにカンマが含まれている場合は、引用符で囲まなければなりません。そうでない場合は常に曖昧さがあります。 –