Maison  >  Article  >  développement back-end  >  Correspondance de modèles à l'aide de PHP et d'expressions régulières

Correspondance de modèles à l'aide de PHP et d'expressions régulières

WBOY
WBOYoriginal
2023-06-13 15:29:24657parcourir

Dans les langages de programmation modernes, la correspondance de modèles est une opération très courante. Il est utilisé pour trouver des parties d'une chaîne qui correspondent à certaines règles. En PHP, les expressions régulières sont très pratiques pour la correspondance de modèles. Dans cet article, nous aborderons la correspondance de modèles à l'aide de PHP et des expressions régulières.

Tout d’abord, nous devons comprendre ce que sont les expressions régulières. Les expressions régulières sont un langage utilisé pour la correspondance de modèles. Il peut être utilisé pour rechercher, remplacer, valider et extraire des parties spécifiques d'une chaîne. Les expressions régulières sont constituées de certains caractères et caractères spéciaux. Ces caractères sont utilisés pour faire correspondre des chaînes.

En PHP, nous pouvons utiliser la fonction preg_match() pour effectuer une correspondance d'expressions régulières. Voici un exemple :

$string = "This is a test string.";
$pattern = "/test/i";
preg_match($pattern, $string, $matches);
print_r($matches);

Dans l'exemple ci-dessus, $string est la chaîne à rechercher. $pattern est une expression régulière. Dans cet exemple, nous utilisons "/test/i" comme expression régulière. Cela signifie que nous recherchons "test" dans la chaîne, où "i" signifie insensible à la casse. Enfin, $matches est un tableau contenant tous les résultats correspondants. Dans ce cas, il devrait afficher :

Array
(
    [0] => test
)

Si aucune chaîne correspondante n'est trouvée, le tableau $matches sera vide.

Maintenant, jetons un coup d'œil aux caractères les plus élémentaires des expressions régulières.

  • .: Correspond à n'importe quel caractère
  • ^: Correspond au début de la chaîne
  • $: Correspond à la fin de la chaîne
  • []: Correspond à n'importe quel caractère entre parenthèses
  • [a-z]: Correspond à entre a - z N'importe quel caractère
  • 1 : Correspond à n'importe quel caractère sauf a - z
  • () : Correspond à une expression entre parenthèses

Voici un exemple pour faire correspondre un code postal :

$string = "12345-6789";
$pattern = "/^[0-9]{5}(-[0-9]{4})?$/";
preg_match($pattern, $string, $matches);
print_r($matches);

Dans l'exemple ci-dessus, nous avons utilisé quelques caractères différents :

  • ^ : représente le début de la chaîne
  • [0-9]{5} : correspond à 5 nombres
  • (-[0-9 | 6789
  • Maintenant, nous avons suffisamment appris pour commencez à écrire un script plus complexe. Voici un exemple pour rechercher tous les fichiers PHP dans un dossier et lister toutes les fonctions et méthodes qu'ils contiennent :
$dir = "./";
$files = scandir($dir);

foreach ($files as $file) {
    if (preg_match("/.php$/", $file)) {
        $content = file_get_contents($file);
        preg_match_all("/(function|public function|private function|protected function|method|public method|private method|protected method) ([a-zA-Z0-9_]+)/", $content, $matches);
        echo "In $file:
";
        foreach ($matches[2] as $match) {
            echo "- $match()
";
        }
    }
}

Dans l'exemple ci-dessus, nous avons utilisé la fonction preg_match_all(). Cette fonction est similaire à la fonction preg_match(), sauf qu'elle recherche toutes les correspondances au lieu de seulement la première correspondance. Nous avons également utilisé une expression régulière pour faire correspondre toutes les fonctions et méthodes. Dans cet exemple, nous listerons uniquement les fonctions et méthodes publiques, privées et protégées.

    Nous avons vu comment effectuer une correspondance de modèles en utilisant PHP et des expressions régulières. Cette technique est très puissante et peut être utilisée à de nombreuses fins différentes, de la simple correspondance de chaînes à la validation de données complexes. Si vous n'avez pas encore essayé d'utiliser les expressions régulières, nous vous encourageons à prendre le temps de les apprendre et de commencer à les utiliser, car elles peuvent vous aider à écrire du code plus efficace et plus flexible.
  • a-z

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn