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
---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt