Maison >développement back-end >tutoriel php >Comment faire une correspondance d'expressions régulières en utilisant PHP ?

Comment faire une correspondance d'expressions régulières en utilisant PHP ?

PHPz
PHPzoriginal
2023-05-23 14:01:363866parcourir

L'expression régulière est un puissant outil de traitement de texte qui vous permet de rechercher des chaînes avec des modèles spécifiques dans le texte et de les remplacer ou de les extraire. En PHP, les expressions régulières utilisent la série de fonctions preg, notamment preg_match, preg_match_all, preg_replace, etc. Cet article explique comment utiliser PHP pour la correspondance d'expressions régulières.

  1. preg_match function

preg_match est l'une des fonctions d'expression régulière les plus couramment utilisées en PHP. Il accepte trois paramètres : un modèle, une chaîne et une référence de variable facultative. Le modèle est une expression régulière et la chaîne est le texte à rechercher. La fonction renvoie 1 si une correspondance est trouvée, 0 sinon.

Ce qui suit est un exemple simple :

$pattern = '/(d+)/';
$string = 'I have 2 apples and 3 bananas';
if (preg_match($pattern, $string, $matches)) {
    echo 'First number found: ' . $matches[0];
}

Dans cet exemple, nous utilisons le modèle d'expression régulière /(d+)/, qui correspond à tous les nombres. Après avoir trouvé un nombre dans la chaîne pour la première fois, nous recherchons ce modèle à l'aide de la fonction preg_match. Si une correspondance est trouvée, la fonction renvoie 1 et transmet le résultat correspondant dans la variable $matches. Dans cet exemple, nous pouvons obtenir le chiffre 2.

  1. fonction preg_match_all

Contrairement à la fonction preg_match, la fonction preg_match_all recherche la chaîne entière et renvoie un tableau de toutes les correspondances. Cette fonction prend également trois paramètres : le modèle, une chaîne et un tableau pour contenir le résultat.

Voici un exemple d'utilisation de la fonction preg_match_all :

$pattern = '/(d+)/';
$string = 'I have 2 apples and 3 bananas';
if (preg_match_all($pattern, $string, $matches)) {
    echo 'All numbers found: ' . implode(', ', $matches[0]);
}

Dans cet exemple, nous utilisons le même modèle, mais nous utilisons la fonction preg_match_all pour rechercher la chaîne entière . Si au moins une correspondance est trouvée, la fonction renvoie 1 et enregistre toutes les correspondances dans la variable $matches. Dans cet exemple, nous séparons tous les résultats correspondants par des virgules et les imprimons.

  1. fonction preg_replace

En plus de rechercher et d'extraire, vous pouvez également utiliser la fonction preg_replace pour remplacer toutes les correspondances d'une chaîne. Cette fonction prend trois paramètres : le modèle, la chaîne de remplacement et la chaîne à rechercher.

Voici un exemple :

$pattern = '/apple/';
$replace = 'orange';
$string = 'I have an apple';
echo preg_replace($pattern, $replace, $string);

Dans cet exemple, nous utilisons la fonction preg_replace pour remplacer toutes les chaînes correspondant au motif /apple/ par orange.

  1. Remplacement de modèle

Les expressions régulières peuvent également être utilisées pour générer dynamiquement du HTML ou d'autres chaînes. Dans ce cas, nous pouvons utiliser la fonction preg_replace_callback pour effectuer des actions spécifiques, comme remplacer le modèle par le contenu à afficher.

Voici un exemple de code :

$template = "Hello {{ name }}! Today is {{ day }}.";
$data = [
    'name' => 'PHP',
    'day' => 'Monday',
];
$pattern = '/{{s*([a-zA-Z0-9_]+)s*}}/';
$result = preg_replace_callback(
    $pattern,
    function($matches) use ($data) {
        return $data[$matches[1]];
    },
    $template
);
echo $result;

Dans cet exemple, nous utilisons une chaîne de modèle simple qui contient deux variables : {{ name }} et { { day }} . Nous stockons également les données dans un tableau associatif, puis utilisons la fonction preg_replace_callback pour parcourir toutes les variables correspondantes et les remplacer par les valeurs correspondantes dans le tableau associatif. Dans cet exemple, nous remplaçons la chaîne du modèle par Hello PHP Today is Monday.

Résumé

Ce qui précède est la connaissance de base de la correspondance d'expressions régulières à l'aide de PHP. Les expressions régulières étant un outil puissant, cet article ne fournit que quelques exemples d’utilisation de base. J'espère que ces exemples pourront vous aider à maîtriser l'utilisation de base des expressions régulières et à jouer un plus grand rôle dans votre travail quotidien.

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