Les bases

Le Langage

Fonctions

Intégration Mysql

Astuces

Hébergement
Annuaire
 

Chapitre 2 - Le Langage

 
 

3) Expression régulière ou regex

 
 

a) Définition

Nommée également Regular Expression (RegExp), une expression régulière permet de caractériser le format d'une chaîne de caractère. Plus précisément, une expression régulière est un motif ou une série de motifs de caractères comparé à une chaîne de caractère. Le but étant de rechercher ou de remplacer un motif dans une chaîne de caractère.

 

b) Syntaxe


Il y a, avant tout, deux caractères spéciaux qu'il est utile de connaitre, ils servent à définir le début et la fin d'une chaine a rechercher, il s'agit de ^ et $ :

Exemple

Description

^debut_chaine

Chaine commençant par "debut_chaine"

fin_chaine$

Chaine finissant par "fin_chaine"

^chaine_fixe$

Chaine qui commence et qui finis par "chaine_fixe", il s'agit donc de la chaine au complet

pattern "

Chaine comportant le motif "pattern

Les Quantificateurs

Ils permettent de définir le "nombre de fois" qu'un ou plusieurs caractères peuvent se répéter, mais aussi fixer une limite entre n1 et n2 chiffres.

Symbole

Description

Exemple

Résultat

*

0 ou plusieurs occurences

tx*

t, tx, txxx ...

+

Une ou plusieurs occurences

tx+

t mais tx, txxx ...

?

0 ou 1 occurence

tx?

txx mais t, tx

{n}

n occurences

tx{2}

txxx, tx mais txx

{n,}

Au minimum n occurences

tx{2,}

tx mais txx, txxxx ...

{0,n}

Au maximum n occurences

tx{0,2}

txxx mais txx, tx ...

{n1,n2}

De n1 à n2 occurences compris

tx{2,3}

tx, txxxx mais txx, txxx ...

Le point

Si vous voulez compter le nombre de caractères sans spécifier la séquence de caractères, il suffit de mettre un point :

.{,190}: Chaine contenant moins de 190 caractères. (Utile pour limiter le nombre de caractère après un formulaire par exemple)

 

Opérateur booléen ou

Il est également possible de vouloir une chaine ou une autre séquence ou caractère à rechercher. Il faut donc se servir du caractère | (opérateur booléen ou)

bon(jour|soir) : Chaine contenant bonjour ou bonsoir.

 

Les crochets

Les crochets sont utiles pour spécifier les caractères que vous autorisez dans une chaine

[0-8] : Chiffre de 0 à 8

[web] :Chaine contenant un w, un e et un b mais pas forcement "web" en entier

Les crochets sont utile aussi pour exclure une séquence de caractères.

[^0-9] : Exclut les chaînes contenant des chiffres.

 

Caractères spéciaux

Il est possible que vous désiez rechercher dans une chaine les caractères tel que { ou [ ...

Or ils sont dits spéciaux. Il est donc indispensable de rajouter un antislash devant ces caractères spéciaux.

NB : l'antislash \ étant un caractère spécial aussi, si vous voulez faire une recherche avec celui-ci, vous devez rajouter un deuxième \ ce qui donne \\

Voici la liste des caractères spéciaux : ^ $ ( ) | * + ? { } \ . [ ]

 

 

b) Exemples

- Recherche du caractère "a" dans la chaîne $mot.


<?
$lettre = "a";
if (ereg($lettre,$mot)) {
echo "Le mot $mot contient la lettre $lettre";
}
?>

- Recherche d'une chaîne de caractère

<?
/* on recherche dans cet exemple
le mot terre dans la chaine $phrase
*/

$mot = "terre";
if (ereg($mot,$phrase)) {
echo "La phrase $phrase contient le mot $mot";
}
?>

 

- La position des caractères pour une recherche exclusive


Il est possible de retrouver tous les mots/lettres etc situés en début ou fin de la chaine spécifiée.
Exemple :


"^terre" retrouve toutes les chaînes commençant pas terre
et
"$terre" retrouve toutes les chaînes finissant par terre



© HIWIT tous droits réservés