Les expressions régulières en PHP

Les expressions régulières, également appelées regex ou regexp, leur but principal est de rechercher efficacement des motifs dans un texte donné. Ces motifs de recherche sont écrits en utilisant un format spécial qu’un analyseur d’expressions régulières comprend.

Les expressions régulières utilisent des opérateurs arithmétiques tels que (+,-,*, /) pour créer des expressions complexes.

Les expressions régulières vous aident à accomplir des tâches telles que la validation des adresses e-mail, mot de passe, etc.
 
 
Regardons quelques opérateurs utilisé dans les expressions régulières en PHP.
 

OPÉRATEUR
DESCRIPTION
^ Il indique le début d’une chaîne de caractères.
$ Il indique la fin d’une chaîne.
. Il indique presque n’importe quel caractère.
() Il indique un groupe d’expressions.
[] Il trouve une plage de caractères, par exemple [xyz] signifie x, y ou z .
[^] Il trouve les éléments qui ne sont pas dans la plage, par exemple [^abc] signifie tout sauf a, b ou c.
– (tiret) Trouve la plage de caractères dans la plage d’éléments donnée, par exemple [a-z] signifie de a à z.
| (pipe) C’est le OU logique par exemple x | y signifie x OU y.
? Il indique zéro ou un caractère précédent.
* Il indique zéro ou plusieurs caractères précédents.
+ Il indique un ou plusieurs caractères précédents.
{n} Il indique exactement n fois la plage de caractères précédents.
{n, } Il indique au moins n fois le caractère ou la plage d’éléments précédents.
{n, m} Il indique au moins n mais pas plus de m fois, par exemple x{2, 4} signifie x répété 2 à 4 fois.
\ Il indique le caractère d’échappement.

 
Le tableau suivant montre quelques expressions régulières et la chaîne correspondante.
 

EXPRESSION RÉGULIÈRE
CORRESPONDANCE
xxx La chaîne « xxx »
^xxx La chaîne qui commence par « xxx »
xxx$ La chaîne qui se termine par « xxx ».
^xxx$ La chaîne ne contient que « xxx ».
he*llo Correspond à llo, hello ou hehello, mais pas hellooo
hello+ Il correspondra à hello ou plus. Par exemple, hello, hellohello ou hellohellohello
he?llo Il correspondra à llo ou hello
he.o Il correspondra à n’importe quel caractère entre he et o. Les correspondances possibles sont helo ou hero, mais pas hello
[abc] a, b, ou c
[a-z] Correspond à n’importe quelle lettre minuscule
[^A-Z] Toute les lettres sauf les lettres majuscules
(a|b) Soit « a » ou « b »
[a-z]+ Une ou plusieurs lettres minuscules
^[a-zA-Z0-9._-] Correspond à n’importe quelle lettre minuscule ou majuscule, à des chiffres entre 0 et 9 et à des points, des caractères de soulignements ou des tirets.
[email protected][a-zA-Z0-9-] Correspond au symbole @ suivi de lettres minuscules ou majuscules, des chiffres entre 0 et 9 ou des tirets.
+\.[a-zA-Z.]{2,5}$/ Échappe le point à l’aide de \, puis fait correspondre toute lettre minuscule ou majuscule ayant une longueur de caractère comprise entre 2 et 5 à la fin de la chaîne.

 
Regardons à certains des caractères spéciaux utilisés dans les expressions régulières.
 

CARACTÈRE SPÉCIAL
DESCRIPTION
\n Il indique une nouvelle ligne.
\r Il indique un retour de chariot.
\t Il indique une tabulation.
\s Correspond aux caractères d’espacement comme l’espace, le saut de ligne ou la tabulation.
\d Correspond à n’importe quel chiffre de 0 à 9.
\w Correspond à des les lettres minuscules, majuscules, les chiffres et le caractères de soulignement.

 
 

Les expressions régulières en PHP

PHP a intégré des fonctions qui nous permettent de travailler avec des expressions régulières. Regardons maintenant les fonctions d’expression régulière les plus utilisées en PHP.

  • preg_match : cette fonction est utilisée pour effectuer une correspondance de motif sur une chaîne de caractères. Elle retourne vrai si une correspondance est trouvée et faux si elle n’est pas trouvée.
  • preg_split : cette fonction est utilisée pour effectuer une correspondance de motif sur une chaîne de caractères et ensuite répartir les résultats dans un tableau.
  • preg_replace : cette fonction est utilisée pour effectuer une correspondance de motif sur une chaîne de caractères et ensuite remplacer la correspondance par le texte spécifié.

 
Vous trouverez ci-dessous la syntaxe des fonctions d’expression régulière telle que preg_match, preg_split ou preg_replace.

<?php
	preg_match('/motif/', texte);
	preg_split('/motif/', texte);
	preg_replace('/motif/', texte);
?>

Ici,

  • « ‘/motif/' » est le motif que nous devons faire correspondre.
  • « texte » est le texte à comparer.

 
Regardons maintenant des exemples pratiques qui implémentent les fonctions ci-dessus en PHP.
 

La fonction preg_match
<?php
	// Déclarez une chaîne
	$test_string = 'hello world';
	  
	if(preg_match('/^hello/', $test_string)) {
		echo("La chaîne correspond à l'expression régulière."); 
	}
	else {
		echo("La chaîne ne correspond pas à l'expression régulière.");  
	}
?>

La sortie :

La chaîne correspond à l'expression régulière.

 
 

La fonction preg_replace
<?php
	// Déclarez une chaîne
	$original = "Une très belle année 2020!"; 
	$replaceWith = "2021"; 
	   
	$output = preg_replace("([0-9]+)", $replaceWith, $original);  
		  
	// Afficher le résultat
	echo $output; 
?>

La sortie :

Une très belle année 2021!

 

La fonction preg_split
<?php
	// Déclarez une chaîne
	$tel = "06.15.78.99.12";  

	$digit = preg_split ("/\./", $tel);  
	  
	echo "$digit[0] \n"; 
	echo "$digit[1] \n"; 
	echo "$digit[2] \n"; 
	echo "$digit[3] \n"; 
	echo "$digit[4] \n"; 
?>

La sortie :

06 
15 
78 
99 
12

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *