Expressions Régulières




  1. Que sont les Expressions Régulières ?

Les expressions régulières sont une des meilleurs inventions au niveau recherche et manipulation des chaînes de caractères.
Le principe n'est pas forcément très simple, mais il a l'intérêt de pouvoir fonctionner avec de très nombreux langages et systèmes.
En effet, on peut l'utiliser sous Unix (find, grep, vi...), en PHP, en Perl...
Nous allons donc déjà donner quelques exemples puis les expliquer. On terminera avec un récapitulatif des caractères spéciaux.



  2. Quelques exemples



  2. 1. Vérifier que la variable ressemble à une adresse mail

On ne peut pas en effet dire si une variable contient une vraie adresse e-mail, mais on peut dire si elle y ressemble, c'est à dire qu'elle a un "@", et un "." (après le domaine).
La vérification n'est donc pas parfaite puisqu'une fausse adresse mail (une adresse qui n'existe pas) sera considérée comme vraie si elle a une syntaxe correcte.
<?php
$mail = "nospam@mail.com";
if (ereg("^.+@.+\\..+$",$mail)) {
  Echo "$mail est une adresse mail\n";
}
else {
  Echo "$mail n'est pas une adresse mail\n";
}
$mail = "ceci_nest_pas_une@adresse_mail";
if (ereg("^.+@.+\\..+$",$mail)) {
  Echo "$mail est une adresse mail\n";
}
else {
  Echo "$mail n'est pas une adresse mail\n";
}
?>

ce qui donne comme résultat :
nospam@mail.com est une adresse mail
ceci_nest_pas_une@adresse_mail n'est pas une adresse mail


  2. 2. Suppression des espaces superflus

On peut avoir besoin de supprimer les espaces inutiles dans une variable pour la mettre par exemple dans une base de données. Le code pour cette manipulation est :
$val = ereg_replace(" {2,}"," ",$val);


  2. 3. Enlever les balises HTML

Il existe la fonction "stip_tags" en PHP qui permet de supprimer les tags HTML et PHP, mais juste de les supprimer, si vous souhaitez les remplacer, vous pouvez faire : Enlève toutes les balises HTML et PHP d'une page et les remplace par un espace :
$fich = ereg_replace('<([^>]|\n)*>',' ',$fich);
Remplace tous les caractères de ponctuation par un espace :
$fich = eregi_replace("[[:punct:]]"," ",$fich);



  3. Les caractères spéciaux

Attention, ces caractères spéciaux sont liés au PHP et ne sont pas forcément applicable partout.
^Premier caractère de la chaîne
$Dernier caractère de la chaîne
{}Précision sur le nombre d'occurrences recherchées
{5}Exactement 5 occurrences
{3,}Au moins 3 occurrences
{4,8}Entre 4 et 8 occurrences
\Caractère d'échappement utilisé pour les caractères spéciaux
\.Le point
\nLa fin de la ligne
\rLe retour chariot
\tLa tabulation
\-Le signe moins
|Le "OU" pour vérifier la présence de l'un ou l'autre des éléments
[]Classes de caractères
[a-z]N'importe quelle lettre minuscule
[a-zA-Z0-9]N'importe quel lettre (majuscule ou minuscule) ou chiffre
[^0-9]N'importe quel caractère sauf les chiffres (subtilité du "^")
[[:alnum:]]N'importe quel caractère alphanumérique (chiffre ou lettre)
[[:alpha:]]N'importe quelle lettre
[[:digit:]]N'importe quel chiffre
[[:lower:]]N'importe quelle lettre minuscule
[[:punct:]]N'importe quel signe de ponctuation
[[:space:]]N'importe quel espace vide
[[:upper:]]N'importe quelle lettre majuscule
[[:xdigit:]]N'importe quel chiffre hexadécimal





Page modifiée le : 24/07/2003
Site modifié le : 14/09/2020


Valid XHTML 1.0 Transitional