Récupération de toutes le virgules sauf celles entre guillemet [Résolu]

edwinzap 159 Messages postés samedi 29 septembre 2012Date d'inscription 21 juin 2016 Dernière intervention - 10 févr. 2016 à 10:54 - Dernière réponse : edwinzap 159 Messages postés samedi 29 septembre 2012Date d'inscription 21 juin 2016 Dernière intervention
- 10 févr. 2016 à 12:36
Bonjour,
Je ne sais pas si ce que je cherche est faisable strictement en regex.
Je cherche un moyen de récupérer toutes les virgules d'un texte sauf si celle si se trouve dans un bloc entre guillemet.

Un exemple vaut mieux qu'un long discours:

la la, un test ," ne pas, prendre, ces, virgules", la la, test

En gras souligné les virgules à retourner.
(la virgule est un prendre si elle n'est pas précédée de ," et suivie de " )

Merci !
Afficher la suite 

10 réponses

Répondre au sujet
jordane45 19218 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 10 févr. 2016 à 11:28
0
Utile
1
Bonjour,

Ceci devrait faire l'affaire :

(?:".*")*(,)

edwinzap 159 Messages postés samedi 29 septembre 2012Date d'inscription 21 juin 2016 Dernière intervention - 10 févr. 2016 à 11:32
Malheureusement ça ne donne pas le résultat attendu.
Cela donne ceci:

la la, un test ," ne pas, prendre, ces, virgules", la la, test
Commenter la réponse de jordane45
jordane45 19218 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 10 févr. 2016 à 11:54
0
Utile
7
Heu... non...
ça donne ça :

edwinzap 159 Messages postés samedi 29 septembre 2012Date d'inscription 21 juin 2016 Dernière intervention - 10 févr. 2016 à 12:02
Ok merci,
L'option gmi sert à quoi ?

Enfin, le résultat n'est pas totalement correcte.
En effet si j'ai ceci:
la ,",la", un test," ne pas, prendre, ces, virgules", la la, test

En gras les virgules désirées
edwinzap 159 Messages postés samedi 29 septembre 2012Date d'inscription 21 juin 2016 Dernière intervention - 10 févr. 2016 à 12:14
Mais ça ne fonctionne pas si j'ai un retour à la ligne entre deux guillemets !
jordane45 19218 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 10 févr. 2016 à 12:25
Moi je me suis basé sur l'exemple que tu nous as donné....
maintenant que tu ajoutes de nouvelles "conditions"... cela ajoute forcément de la difficulté .... et il n'est pas super évident d'être capable de tout gérer.
bref.. je t'ai donné la "base" ... à toi maintenant de la faire évoluer pour que ça corresponde à tes "nouveaux" besoins.
edwinzap 159 Messages postés samedi 29 septembre 2012Date d'inscription 21 juin 2016 Dernière intervention - 10 févr. 2016 à 12:27
Désolé, c'est en mettant la regex en pratique que je me suis rendu compte que certains morceaux possédaient des retour chariot.
Je crois qu'il existe une option pour que le dot prenne également les retour à la ligne mais je n'arrive pas à remettre la main dessus... une idée ?
Merci
edwinzap 159 Messages postés samedi 29 septembre 2012Date d'inscription 21 juin 2016 Dernière intervention - 10 févr. 2016 à 12:36
Ceci à l'air de fonctionner. Merci beaucoup !

(?:\"(.|\\s)+?\")*(,)
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.