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

Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
- - Dernière réponse : edwinzap
Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
- 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 

Votre réponse

2 réponses

Messages postés
23650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
0
Merci
Bonjour,

Ceci devrait faire l'affaire :

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

edwinzap
Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
-
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
Messages postés
23650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
0
Merci
Heu... non...
ça donne ça :

edwinzap
Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
-
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
Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
-
Mais ça ne fonctionne pas si j'ai un retour à la ligne entre deux guillemets !
jordane45
Messages postés
23650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
-
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
Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
-
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
Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
-
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.