RegEx : Vérifier un mot dans une liste

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

RegEx : Vérifier un mot dans une liste

Message par falsam »

Je souhaite vérifier un mot avec une liste préexistante en utilisant les expressions régulieres.

Code : Tout sélectionner

;Vérifier un mot dans une liste
Global *RegMatch = CreateRegularExpression(#PB_Any ,"^(tomate|courgette|pomme de terre){1}")

Procedure EstUnlegume(Valeur.s)
  ProcedureReturn MatchRegularExpression (*RegMatch, Valeur)
EndProcedure

Debug EstUnlegume("courgette") ;Retournera #True

Debug EstUnlegume("pomme de terre") ;Retournera #True

Debug EstUnlegume("poire") ;Retournera #False
Ce code fonctionne bien, mais j'ai un souci avec la "casse"

Code : Tout sélectionner

Debug EstUnlegume("Courgette")
retournera #False à cause de la majuscule.
je peux bien sur modifier ce dernier exemple de cette maniére

Code : Tout sélectionner

Debug EstUnlegume(LCase("Courgette"))
mais j'aimerais quelque chose de plus propre. Pour cela, j'ai essayé de modifier l'expression régulière en ajoutant le modificateur /i (case Insensitive) à la regexp mais sans résultat.

Merci à celui ou ceux qui apporteront une réponse. :)
Dernière modification par falsam le jeu. 13/déc./2012 21:46, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: RegEx : ça casse !!!

Message par djes »

Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

RegEx : Vérifier un mot dans une liste

Message par falsam »

Merci djes :)

le code fonctionnelle avec quelques exemples

Code : Tout sélectionner

;Vérifier un mot dans une liste
Global *RegMatch = CreateRegularExpression(#PB_Any ,"^(?i)(tomate|courgette|pomme de terre){1}")

Procedure EstUnlegume(Valeur.s)
  ProcedureReturn MatchRegularExpression (*RegMatch, Valeur)
EndProcedure

Debug EstUnlegume("courgette") ;Retournera #True

Debug EstUnlegume("pomme de terre") ;Retournera #True

Debug EstUnlegume("poire") ;Retournera #False

Debug EstUnlegume("Courgette") ;Retournera #True

Debug EstUnlegume("pomme de Terre") ;Retournera #True
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: RegEx : Vérifier un mot dans une liste

Message par graph100 »

je vais lancer la polémique :lol: :

la tomate c'est un fruit, non ?

(yark yark yark :mrgreen: )
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
Mindphazer
Messages : 695
Inscription : mer. 24/août/2005 10:42

Re: RegEx : Vérifier un mot dans une liste

Message par Mindphazer »

graph100 a écrit :je vais lancer la polémique :lol: :

la tomate c'est un fruit, non ?

(yark yark yark :mrgreen: )
Les deux ! (botaniquement parlant, c'est un fruit. Culturellement paralnt, chez nous, c'est un légume)
http://www.jesuiscultive.com/spip.php?article197
http://www.gerbeaud.com/fruit-legume-de ... tomate.php
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: RegEx : Vérifier un mot dans une liste

Message par djes »

falsam a écrit :Merci djes :)

le code fonctionnelle avec quelques exemples

Code : Tout sélectionner

;Vérifier un mot dans une liste
Global *RegMatch = CreateRegularExpression(#PB_Any ,"^(?i)(tomate|courgette|pomme de terre){1}")

Procedure EstUnlegume(Valeur.s)
  ProcedureReturn MatchRegularExpression (*RegMatch, Valeur)
EndProcedure

Debug EstUnlegume("courgette") ;Retournera #True

Debug EstUnlegume("pomme de terre") ;Retournera #True

Debug EstUnlegume("poire") ;Retournera #False

Debug EstUnlegume("Courgette") ;Retournera #True

Debug EstUnlegume("pomme de Terre") ;Retournera #True
Moi je mettrais le (?i) avant le ^... Mais bon je chipote, puisque ça fonctionne ;)
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: RegEx : Vérifier un mot dans une liste

Message par falsam »

djes a écrit :Moi je mettrais le (?i) avant le ^... Mais bon je chipote, puisque ça fonctionne ;)
Bonjour Djes. Si cette manière de faire est plus académique je suis prêt à corriger le code. :)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre