Expression régulière avec PHP

      Il peut arriver que vous ayez besoin de rechercher dans une chaîne de caractère la présence de certaines caractéristique et non de la comparer globalement à une autre. Par exemple, vous pouvez vouloir identifier toutes les chaînes commençant par un «S» ou toutes celles cotenant des chiffres. Pour cela, on explore la chaîne avec un profil de recherche appelé expression rationnelle (en anglais : regular expression).

      Dans une page Web, l'usage le plus courant d'une expression rationnelle est la vérification des saisies effectuées par un utilisateur à l'aide d'un formulaire. Dans le cas d'un nom prore, par exemple, vous pourrez ainsi déceler des anomalies telles que la présence de chiffres ou de caractères de ponctuation anormaux. Si une recherche par expression rationnelle décèle la présence de caractères autres que «a» à «z», «A» à «Z»,-,' ou espace, il y a sûrment une erreur.

      Un profil de recherche se compose de caractère littéraux et de caractères spéciaux. Les premiers sont des caractères odinaires n'ayant pas de signification particulière. Les caractères spéciaux sont des caractères ordinaires qui, dans une expression rationnelle prennent une signification particulière.

      Littéraux et caractère spéciaux sont associées pour créer un profil de recherche. La chaîne de caractère examinée est explorée selon les spécifications de ce profil de recherche. Si la recherche est couronnée de succès, le résultat est VRAI. On peut dès lors choisir entre deux chemins dans la suite du programme.



Voici les caractères possible pour émettre des conditions de recherche

CaractèresSignificationExempleCorrespod àNe correspod pas à
^Début d'une ligne^cchatmon chat
$Fin d'une lignet$chatchatte
.n'importe quel caractèref.irefaire, foirefoirer, défaire
?Le précédent caractère est facultatif Lapine?slapinslapons
( )Groupement de littéraux dans une chaîne qui doit correspondre exactementlap(ine)slapineslapins
[ ]Définit un ensemble de caractère facultatifs Lapin[es]lapin, lapine,lapineslapons
[!]Définit un ensemble de caractères ne devant pas correspondrelapin[es]lapinlapine,lapins
-Tous caractères entre deux caractères lap[i-u]nlapin,laponlapen
+Un ou plusieurs exemplaire du caractère précédent beta[1-3]+beta2, beta22, beta123betax, beta45
*Aucun ou plusieurs exemplaires du caractère précédent beta[1-3]*beta2, beta, beta132betax, beta45
{ , }Nombre de répétition possible [0-9]{2,5}123, 1451,xx3
\Le caractère suivant est un littéral m\*nm*nmon, man
{ | | }Plusieurs groupes possibles (Marcel|Michel)Marcel, MichelManuel


^.+@.+\.com$ ^. : N'importe quelle suite de un ou plusieurs caractères
@ : un Arobase (@) littérral
.+ : n'importe quelle chaîne de un ou plusieurs caractères
\. : un point littéral(.)
com$ : la chaîne ".com" à la fin

Correspondance : martin@monserveur.com
non correspondance : martin@monserveur.net

      Pour faire une comparaison dans une chaîne de caractères au moyen d'un profil de recherche, vous pouvez utiliser la fonction ereg() dont la forme générale est : ereg("profil", chaîne à explorer); Pour plus de renseignement rendez-vous à l'adresse suivante : PHP.NET

[ TOP ]



Association de comparaisons

      Fréquement, une simple comparaison n'est pas suffisante pour vérifier une condition et il faut en associer plusieurs. voici comment se présente une association de comparaison : comparaison1 and|or|xor comparaison2 and|or|xor comparaison2 Avec :
  • AND : Les deux comparaison doivent répondre VRAI
  • OR : L'une ou l'autre des deux comparaison doit répondre VRAI
  • XOR : Une seule des deux comparaisons doit répondre VRAI


      La liste suivante vous montre quelques exemples d'association de comparaison : $Cli =="Dupont" or $Cli =="Dupond" $Cli =="Dupont" and $Ville=="Québec"

[ TOP ]





Copyright © 2003-2008 Dave J.