Fonction preg_match() | Développement Web

Fonction preg_match()

La fonction PHP preg_match() va nous permettre de rechercher des motifs bien précis au sein d’une chaîne de caractères.

Syntaxe de la fonction preg_match()

   preg_match (motif_a_detecter, chaine_a_traiter, tableau_reponse, debut_de_la_recherche);
  • Le paramètre motif_a_detecter correspond à l’expression régulière que l’on recherche.
  • Le paramètre chaine_a_traiter correspond à la chaîne de caractères que nous voulons analyser
  • Le paramètre tableau_reponse est facultatif. S’il est renseigné, la fonction preg_match() retournera une réponse sous forme de tableau multidimensionnel avec comme premier élément (indice 0) un tableau comprenant 2 éléments: le motif recherché (indice 0) et la position de la première occurrence trouvée (indice 1). La fonction preg_match() s’arrête dès qu’une occurrence est détectée.
  • Si le paramètre debut_de_la_recherche est renseigné, la recherche commencera à partir de l’indice fourni dans ce paramètre

Utilisation de la fonction preg_match()

En fonction des paramètres envoyés à la fonction preg_match(), son utilisation pourra varier.
Nous allons ici montrer plusieurs exemples de son exploitation.


   <?php

     Exemple 1

     $chaine = 'développement php';
     $motif = '/php/';
     preg_match($motif, $chaine, $answer, PREG_OFFSET_CAPTURE);
     print_r($answer);

     /* Affiche
     Array (
            [0] => Array (
                         [0] => php
                         [1] => 14
                        )
            ) */

     Exemple 2

     $chaine = 'Pour tout savoir sur le développement en php';
     $motif = '/php/';
     if(preg_match($motif,$chaine)){
       echo 'Le motif  <em>' . $motif . '</em> est bien présent dans la chaîne analysée.';
     }

     /* Affiche
     "Le motif /php/ est bien présent dans la chaîne analysée." */

     Exemple 3

     $chaine = 'Langage PHP pour le développement web';
     $motif = '/php/i';
     /* on ajoute le i pour rendre la recherche du motif insensible à la casse */

     $chaine_2 = 'PHPmyadmin, interface de vos bases de données';
     $motif_2 = '/\bphp\b/i';
     /* on entoure le motif avec l'expression \b pour effectuer la recherche
     sur le mot entier uniquement (isolé) */

     if(preg_match($motif,$chaine)){
       echo 'Le motif  <em>' . $motif . '</em> est bien présent dans la chaîne analysée.';
     }

     /* Affiche
     "Le motif /php/ est bien présent dans la chaîne analysée." */

     if(preg_match($motif_2,$chaine_2)){
       echo 'Le motif  <em>' . $motif_2 . '</em> est bien présent dans la chaîne analysée
     en tant que terme isolé.';
     } else {
       echo 'Le motif  <em>' . $motif_2 . '</em> n\'est pas présent
       en tant que terme isolé dans la chaîne analysée.';
     }

     /* Affiche
     "La motif /\bphp\b/i n'est pas présent en tant que terme
     isolé dans la chaîne analysée." */

   ?>