Bonjour,
Je cherche à extraire les champs d'une ligne csv.
Dans le cas normal il suffit de faire un split(';'), mais une des données dans mon cas peut-être ";"
Exemple :
DEBUT;A;";";"B;C";DE;F;FIN
Champ n°1 : DEBUT
Champ n°2 : A
Champ n°3 : ;
Champ n°4 : B;C
Champ n°5 : DE
Champ n°6 : F
Champ n°7 : FIN
J'ai voulu commencé par extraire les données qui ne contiennent pas de ;
J'ai testé l'expression suivante : (;[^"][a-zA-Z0-9]+[^"]) un ; puis je ne doit pas avoir de guillemet puis un texte alpha numérique qui ne se termine pas par un guillemet
Le j'ai le résultat suivant : ;DE; et ;FIN
Par contre si je teste l'expression suivante (je fixe le nombre d'occurence du ") : (;"{0}[a-zA-Z0-9]+"{0}) j'ai eu un resultat plus proche : ;A / ;C / ;DE / ;F / ;FIN
Pour quoi il a récupéré le C puisque qu'il a un guillemet après et n'a pas récupéré le B qui possède un guillemet juste avant malgré que la condition est la même pour le début et la fin de la chaine demandée?
Pour la partie avec ; j'ai trouvé plus de difficulté à mettre en oeuvre.
Si vous avez des suggestions je suis preneur.
Merci d'avance
Partager