J'ai regardé autour de moi, mais je ne trouve pas de solution de travail bien rangée pour cela. J'ai essayé d'utiliser TEXT: CSV_XS, donc il ne s'agit pas de faire quelque chose à la dure avec une regex. Je ne peux pas être en mesure d'installer facilement TEXT :: CSV, mais j'ai la version XS. J'ai simplement besoin d'analyser les champs csv, que je décomposerai plus tard en paires kv.Parse CSV avec des guillemets intégrés sur une chaîne mixte
use Text::CSV_XS;
use Data::Dumper;
my $csv = Text::CSV_XS->new ({ allow_loose_quotes => 1,
allow_whitespace => 1,
eol => $/ });
my $str3 = '09/11/2016 22:05:00 +0000, search_name="ThreatInjection - Rule", search_now=1473644880.000, search="bunchof|stuff1,bunch%of-stuff2", count=100';
my $status = $csv->parse($str3);
my @details = $csv->fields();
print $csv->error_diag();
print Dumper(\@details);
sortie résultante est:
$VAR1 = [
'09/11/2016 22:05:00 +0000',
'search_name="ThreatInjection - Rule"',
'search_now=1473644880.000',
'search="bunchof|stuff1',
'bunch%of-stuff2"',
'count=100'
];
Ainsi, la demande est d'obtenir la recherche = "bunchof | stuff1, tas% de-stuff2" de rester dans un champ. Je suis sûr que la réponse est simple, mais un peu perplexe. Toute aide appréciée.
Merci pour la réponse rapide et facile. J'ai été si profond dans une boîte que je ne pensais pas regarder dans l'autre. –