J'ai posé cette question plus tôt et il a été fermé parce que c'était un doublon, que j'accepte et que j'ai trouvé la réponse à la question Java: splitting a comma-separated string but ignoring commas in quotes, donc merci à quiconque a posté il.Séparer une chaîne sur des virgules ne figurant pas entre guillemets avec une torsion
Mais j'ai depuis rencontré un autre problème. Apparemment, ce que je dois faire est d'utiliser "," comme délimiteur quand il y a zéro ou un nombre pair de guillemets, mais aussi ignorer tout "," entre parenthèses.
Ainsi, les éléments suivants:
"Thanks,", "in advance,", "for("the", "help")"
Est-ce que tokenizer comme:
- Merci,
- à l'avance,
- pour ("le", "aide")
Je ne suis pas sûr s'il y a de toute façon de modifier la regex actuelle I J'utilise pour permettre cela, mais des conseils seraient appréciés.
line.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
Quel est le résultat souhaité? – DOK
Vous devriez utiliser un vrai analyseur CSV pour gérer ce désordre. Le problème d'analyse ** non ** est mieux géré avec les regex. –
@Joachim, Combien de parseurs CSV connaissez-vous qui peut gérer des guillemets, entre crochets, entre guillemets comme il le souhaite? –