Section courante

A propos

Section administrative du site

Les expressions régulières permettent d'effectuer toute sorte de traitement et de comparaisons complexes sur des chaînes de caractères. Ainsi, en utilisant les symboles particuliers de façon approprié, les expressions régulières permettront de rechercher ou d'effectuer des remplacements dans une chaîne de caractères.

Les caractères spécifiques dans les expressions régulières

Symbole Description
\a Ce symbole indique un caractère de signal sonore (BELL)
\0NN Ces symboles indiquent des caractères à l'aide de leur code octal.
\cX Ces symboles indiquent des caractères de contrôle.
\f Ce symbole indique un caractère de saut de formulaire (ou saut de page)
\n Ce symbole indique un caractère de nouvelle ligne, neutre vis-à-vis les systèmes d'exploitation
\r Ce symbole indique un caractère de retour de chariot
\t Ce symbole indique un caractère de tabulation
\xNN Ces symboles indiquent des caractères à l'aide de leur code hexadécimal.

Les métacaractères dans les expressions régulières

Les 12 caractères suivants ont besoin d'un caractère d'échappement avec une barre oblique inversé (\), parce que, par défaut, ils ont des significations spécial :     \ | ( ) [ { ^ $ * + ? .

Symbole Description
. Ce symbole permet d'indiquer une correspondance avec un des caractères, à l'exception de «\n».
| Ce symbole permet d'indiquer une altération
( ) Ces symboles permettent d'indiquer un groupe et une capture
[ ] Ces symboles permettent d'indiquer une classe de caractères
\ Ce symbole permet d'indiquer de modifier le prochain caractère

Les ancres dans les expressions régulières

Symboles Description
^ Ce symbole permet d'indiquer le commencement d'une correspondance de chaine de caractères ou d'une ligne.
$ Ce symbole permet d'indiquer la fin d'une correspondance de chaine de caractères ou de ligne.
\b Ce symbole permet d'indiquer une correspondance d'une limite de «mot»
\B Ce symbole permet d'indiquer une correspondance d'une limite sans «mot»

Les quantifieurs dans les expressions régulières

Les quantifieurs dans les expressions régulières sont appliqués avant un «atome».

Symbole Description
* Ce symbole permet d'indiquer une correspondance de 0 ou plusieurs fois
+ Ce symbole permet d'indiquer une correspondance de 1 ou plusieurs fois
? Ce symbole permet d'indiquer une correspondance de 0 ou 1 fois.
{N} Ce symbole permet d'indiquer une correspondance exacte au nombre de fois «N»
{N,} Ce symbole permet d'indiquer une correspondance d'un minimum de «N» nombre de fois.
{N,M} Ce symbole permet d'indiquer une correspondance dans l'intervalle de fois «N» et «M» nombre de fois.

Les caractères de classe de métacaractères dans les expressions régulières

Symbole Description
^ Ce symbole permet d'indiquer le premier caractère d'une classe effectue une négation de cette classe.
_ Ce symbole permet d'indiquer un moins le premier ou le dernier caractère de la classe, utilisé pour les rangs.

Les caractères de raccourci de classe dans les expressions régulières

Symbole Équivalence Description
\d [0-9] Ce symbole permet d'indiquer un chiffre.
\D [^0-9] Ce symbole permet d'indiquer que se n'est pas un chiffre.
\s [ \t\n\r\f] Ce symbole permet d'indiquer un espace
\S [^ \t\n\r\f] Ce symbole permet d'indiquer que se n'est pas un espace
\w [a-zA-Z0-9_] Ce symbole permet d'indiquer un caractère de «mot».
\W [^a-zA-Z0-9_] Ce symbole permet d'indiquer que se n'est pas un caractère de «mot».

Les métaguillemets et les cas de transformations dans les expressions régulières

Symbole Description
\E Ce symbole permet d'indiquer la fin de la modification.
\L Ce symbole permet d'indiquer des caractères minuscules jusqu'à «\E».
\Q Ce symbole permet d'indiquer des caractères de guillemet de méta jusqu'à «\E».
\U Ce symbole permet d'indiquer des caractères majuscules jusqu'à «\E».

Les variables spéciales dans les expressions régulières

Symbole Description
$` Ce symbole permet d'indiquer les caractères correspondant à la gauche.
$& Ce symbole permet d'indiquer les caractères correspondant.
$’ Ce symbole permet d'indiquer les caractères correspondant à la droite.
\N Ce symbole permet d'effectuer la capture de Nième ensemble de parenthèses si dans une correspondance de côté.
$N Ce symbole permet d'effectuer la capture de Nième ensemble de parenthèses si ce n'est pas dans une correspondance de côté.

Les attributs (modificateurs) dans les expressions régulières

Symbole Description
/e Ce symbole permet d'indiquer qu'il faut évaluer le côté gauche de l'expression
/g Ce symbole permet d'indiquer qu'il faut effectuer une recherche dans toutes les sous-chaines de caractères
/i Ce symbole permet d'indiquer qu'il n'y a aucune distinction entre les majuscules et minuscules
/m Ce symbole permet d'indiquer qu'il faut effectuer le traitement de chaine de caractères sur de multiples lignes
/s Ce symbole permet d'indiquer qu'il faut effectuer le traitement de chaine de caractères sur une seule ligne
/x Ce symbole permet d'indiquer qu'il faut effectuer le traitement étendu des expressions régulières

Les opérations d'expressions régulières

Symbole Description
=~ Ce symbole permet d'effectuer l'application d'une expression régulière (regex).
!~ Ce symbole permet d'effectuer la négation de l'application d'une expression régulière (regex).

Exemples

Voici un exemple montrant comment remplacer le «M.» par «Monsieur» :

  1. #!/usr/bin/perl
  2.  
  3. my $Source;
  4.  
  5. $Source = "Bonjour M. Maltais, comment allez-vous ?";
  6. $Source =~ s/(M\.)/Monsieur/g;
  7.  
  8. print $Source;

on obtiendra le résultat suivant :

Bonjour Monsieur Maltais, comment allez-vous ?

Voici un exemple montrant comment remplacer les apostrophes (simple quote) par des guillemets (double quote) dans les balises «IMG SRC» du HTML :

  1. #!/usr/bin/perl
  2.  
  3. my $Source;
  4.  
  5. $Source = "<img src=\"1.jpg\"><img src = '2.jpg' /><img src='3.jpg'><img src='4.jpg' border=\"1\"><img src='4.jpg'><img border=\"1\" src='6.jpg' >";
  6. $Source =~ s/<img([^>]*)src\s*=\s*["'']([^"'']+)["'']([^>]*)>/<img$1src="$2"$3>/g;
  7.  
  8. print $Source;

on obtiendra le résultat suivant :

<img src="1.jpg"><img src="2.jpg" /><img src="3.jpg"><img src="4.jpg" border="1"><img src="4.jpg"><img border="1" src="6.jpg" >

Voici un exemple montrant comment remplacer les apostrophes (simple quote) par des guillemets (double quote) dans les balises «IMG SRC» du HTML sans tenir compte des majuscules ou des minuscules (la lettre «i» pour les attributs) :

  1. #!/usr/bin/perl
  2.  
  3. my $Source;
  4.  
  5. $Source = "<img src=\"1.jpg\"><img src = '2.jpg' /><IMG src='3.jpg'><img src='4.jpg' border=\"1\"><img src='4.jpg'><img border=\"1\" src='6.jpg' ><img SRC='7.gif' style=\"border:1px;\">";
  6. $Source =~ s/<img([^>]*)src\s*=\s*["'']([^"'']+)["'']([^>]*)>/<img$1src="$2"$3>/gi;
  7.  
  8. print $Source;

on obtiendra le résultat suivant :

<img src="1.jpg"><img src="2.jpg" /><img src="3.jpg"><img src="4.jpg" border="1"><img src="4.jpg"><img border="1" src="6.jpg" ><img src="7.gif" style="border:1px;">

L'exemple suivant permet d'enlever les caractères n'étant pas ASCII :

  1. #!/usr/bin/perl
  2.  
  3. $fulltext = "ABC\255DEF\154\65\66";
  4. print "AVANT: ".$fulltext . "\n";
  5.  
  6. $fulltext =~ s/[^[:ascii:]]//g;
  7.  
  8. print "APRES: ".$fulltext . "\n";

on obtiendra le résultat suivant :

AVANT: ABC­DEFl56
APRES: ABCDEFl56

Remarques

Voir également

Langage de programmation - PHP - Référence de procédures et fonctions - preg_replace

Dernière mise à jour : Dimanche, le 22 février 2015