[PHP] Besoin d'aide avec une expression régulière tout con
Besoin d'aide avec une expression régulière tout con [PHP] - PHP - Programmation
MarshPosté le 12-11-2005 à 21:19:18
Bonjour,
J'ai une chaine de caractères (:D) et je dois vérifier qu'elle contient ces 3 mots (Libelle),(UniteDeVente) et (Prix) peu importe l'ordre, (avec les parentheses)
Je me suis dit que je vais tester, à l'aide d'une expression régulière, la présence de ces 3 mots en testant TOUS les cas d'ordre d'apparition possibles. Alors j'ai fait ceci:
Code :
if(ereg(' .*(Libelle)|(UniteDeVente)|(Prix) .*
| .*(Libelle)|(Prix)|(UniteDeVente) .*
| .*(UniteDeVente)|(Prix)|(Libelle) .*
| .*(UniteDeVente)|(Libelle)|(Prix) .*
| .*(Prix)|(Libelle)|(UniteDeVente) .*
| .*(Prix)|(UniteDeVente)|(Libelle) .*
', $verif))
... mais comme vous le devinerez, ça ne ... marche pas J'ai beau tenter avec ou sans ( ) externes, ou des [ ]. Pourtant je ne comprends pas, chaque ligne filtrerait (en pseudo-code français): "N'importe quel caractère plusieurs fois, puis (Libelle) ou (Prix) ou(UniteDeVente), puis n'importe quel caractère plusieurs fois"
Non ?
Un exemple de chaine à tester serait:
Code :
Produit:Propriete(Libelle)=La barre de fer;Propriete(UniteDeVente)=l'unité;Descriptif=Barre Métallique|Accessoires|Gymnastique;Propriete(Photo)=barre_de_fer.jpg;Propriete(TestProp)=test_test;Rubriques=Accessoire de gymnastique|Bricolage|Maison|Autre
--> Les 3 sont la, ok
alors que
Code :
Produit:Propriete(Libelle)=La barre de fer;Descriptif=Barre Métallique|Accessoires|Gymnastique;Propriete(Photo)=barre_de_fer.jpg;Propriete(TestProp)=test_test;Rubriques=Accessoire de gymnastique|Bricolage|Maison|Autre
--> Il manque "(UniteDeVente)", pas ok
Message édité par ParadoX le 12-11-2005 à 21:19:53
Marsh Posté le 12-11-2005 à 21:19:18
Bonjour,
J'ai une chaine de caractères (:D) et je dois vérifier qu'elle contient ces 3 mots (Libelle),(UniteDeVente) et (Prix) peu importe l'ordre, (avec les parentheses)
Je me suis dit que je vais tester, à l'aide d'une expression régulière, la présence de ces 3 mots en testant TOUS les cas d'ordre d'apparition possibles. Alors j'ai fait ceci:
... mais comme vous le devinerez, ça ne ... marche pas J'ai beau tenter avec ou sans ( ) externes, ou des [ ]. Pourtant je ne comprends pas, chaque ligne filtrerait (en pseudo-code français): "N'importe quel caractère plusieurs fois, puis (Libelle) ou (Prix) ou(UniteDeVente), puis n'importe quel caractère plusieurs fois"
Non ?
Un exemple de chaine à tester serait:
--> Les 3 sont la, ok
alors que
--> Il manque "(UniteDeVente)", pas ok
Message édité par ParadoX le 12-11-2005 à 21:19:53
---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt