Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb d'expression régulière

1 réponse
Avatar
paul POULAIN
Bonjour, je voudrais analyser une chaine de la forme :
"truc ET machin"
"truc OU machin"

pour identifier les 3 parties de l'équation.
Ca je sais faire : /(.*)( ET | OU )(.*)/ marche bien

Mais ca se complique lorsque je veux pouvoir gérer les quotes pour permettre
d'analyser :
"'truc et chose' ET machin"
et obtenir : "truc et chose" / ET / "machin"
/("?.*"?)( ET | OU )("?.*"?)/ ne fonctionne évidemment pas, vu que la " est
facultative.
Y a t'il un moyen de faire ca avec une expression régulière ?

Merci
--
Paul

1 réponse

Avatar
espie
In article <f0n20f$bud$,
paul POULAIN wrote:
Bonjour, je voudrais analyser une chaine de la forme :
"truc ET machin"
"truc OU machin"

pour identifier les 3 parties de l'équation.
Ca je sais faire : /(.*)( ET | OU )(.*)/ marche bien

Mais ca se complique lorsque je veux pouvoir gérer les quotes pour permettre
d'analyser :
"'truc et chose' ET machin"
et obtenir : "truc et chose" / ET / "machin"
/("?.*"?)( ET | OU )("?.*"?)/ ne fonctionne évidemment pas, vu que la " est
facultative.


Un truc du genre:
/(".*?"|.*)s+(ET|OU)s+(".*?"|.*)/
devrait mieux correspondre. Apres, il faut plus de contexte pour savoir
ce que tu veux faire precisement.

Je te conseille quand meme de relire perlre...