Tutorial sur les expressions rationnelles (expressions régulières)

Contenu du snippet

Voilà, je ne sais pas si une autre personne l'a fait avant moi mais comme j'avais du temps a perdre, j'ai fait une petite recherche sur le net et j'ai trouvé tout plein de choses sur les expressions rationnelles, il me semble que l'on dit aussi expressions régulières.

Donc voilà en condensé ce que ça donne :

Source / Exemple :


Une expression rationnelle permet d'effectuer des recherches complexes dans une chaîne de caractères.

Ex :
Soit $Chaine une chaîne quelconque.
On cherche a savoir a quoi correspond cette chaîne.
Pour cela on va utiliser le code suivant :
If (ereg("[^0-9]",$Chaine))
{
 print $Chaine." est un nombre" ;
}
else
{
print $Chaine. "est tout sauf un nombre" ;
}

Interprétation :

La fonction ereg(arg1,arg2)
 Cette fonction va examiner la chaîne, le premier argument contient le profil de recherche et le second la chaîne dans la quelle on veut faire la recherche.
Elle renvoi vrai ou faux

Ereg va alors rechercher dans la chaîne tout ce qui se trouve dans les [ ] de l'arg1 ici : "[^0-9]"

Ici on va rechercher tous les caractères compris entre 0 et 9 (donc tous les chiffres) 
Et la fonction ereg() va renvoyer vrai si la chaîne comprend autre chose que ces caractères (c'est le ^ qui veux dire tout sauf )

Les différents "arg1" de recherche
Symbole pour vérifier si la chaîne
.     comprend un caractère quelconque
.*   comprend un nombre quelconque de caractère quelconque 
^a  commence par  un "a"
a$  finis par "a"
a+ et a*  comprend au moins un "a"
a?  comprend aucun "a" ou 1 seul
\n  comprend un alinéa
\t  comprend une tabulation
(ab)  comprend la chaîne "ab"
a|b  comprend "a" ou "b"
a{2}  comprend la chaîne "aa"
a{1,}  comprend les chaînes "a" ou "aa" ou "aaa" ou.
a{1,3}  comprend les chaînes "a" ou "aa" ou "aaa" 
[a-z]  comprend n'importe quelle lettre minuscule
[A-Z]  comprend n'importe quelle lettre en majuscule 
[0-9]  comprend n'importe quel chiffre de 0 a 9
^[a-z]  donnera vrai que s'il ne trouve rien d'autre que des lettres en minuscules
:alpha:  comprend n'importe quelle lettre
:digit:  comprend n'importe quel chiffre
:alnum:  comprend n'importe quel chiffre ou lettre
:cntrl:  comprend n'importe quel caractère de contrôle
:print:  comprend n'importe quel caractère imprimable
:graph:	  comprend n'importe quel caractère imprimable sauf l'espace
:blank:  comprend l'espace ou la tabulation
:space:  comprend un espace
:upper:  comprend n'importe quelle lettre majuscule
:lower:  comprend n'importe quelle lettre minuscule
:punct:  comprend n'importe quel signe de ponctuation
:xdigit:  comprend n'importe quel chiffre hexadécimal

NB : 
 On peut additionner ces symboles pour donner des recherches plus complexe
ainsi : 
"^[a-z0-9_]|\\-|\\.)+@([a-z0-9_]|\\-\\.)+\\.+([a-z0-9])$"
signifie que l'on ne sort vrai que si la chaîne :
1) Commence par une sous chaîne (de lettres en minuscules ou de chiffres ou de . ou de - ou de _)
2) Et suivit d'un @ lui-même suivit par une sous chaîne (de  lettres en minuscules ou de chiffres ou de . ou de - ou de _)
3) Et suivit d'un . lui-même  suivit par une sous chaîne (de lettre en minuscule ou de chiffres )
en bref cette adition de symbole permet de contrôler que la chaîne est une adresse email

Fonctions utiles
eregi() idem ereg() mais ne fais pas la différence entre majuscules et minuscules.

ereg_replace(chaîne a rechercher, chaîne de remplacement, chaîne )

eregi_replace() Idem ereg_replace() mais ne fais pas la différence entre majuscules et minuscules.

Conclusion :


Je pense que ça servira à certain, si vous avez des choses a contester ou a rajouter n'hésitez pas .
Je cherche juste a savoir si expressions rationnelles = expressions régulières

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.