66 votes

fractionner une chaîne séparée par des virgules avec des chaînes entre guillemets et non entre guillemets

J’ai la chaîne séparée par des virgules suivante que je dois diviser. Le problème est qu’une partie du contenu est entre guillemets et contient des virgules qui ne doivent pas être utilisées dans la division.

Corde:

Je veux la sortie :

J’ai essayé ceci:

Mais il lit la virgule entre « 77,88 »,"99 » comme un hit et j’obtiens la sortie suivante:

23voto

Antoine Points 151

Rapide et facile :

Avec cette chaîne comme entrée :

Il reviendra :

17voto

qqbenq Points 1801

J’aime beaucoup la réponse de jimplode, mais je pense qu’une version avec rendement est un peu plus utile, alors la voici:

Peut-être est-il encore plus utile de l’avoir comme une méthode d’extension:

7voto

Chris Schiffhauer Points 3156

Cette expression régulière fonctionne sans qu’il soit nécessaire de boucler des valeurs et `` , comme dans la réponse acceptée :

Voici l’implémentation en C# :

Sorties

3voto

Chad Hedgcock Points 2198

Aucune de ces réponses ne fonctionne lorsque la chaîne a une virgule entre guillemets, comme dans , ou des guillemets doubles échappés, comme dans , qui sont des CSV valides qui doivent être analysés comme et , respectivement.

Cela fonctionnera également avec le format délimité par des tabulations si vous passez un onglet au lieu d’une virgule comme délimiteur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X