Expression régulière PHP : Comment extraire une sous-chaîne avec une terminaison spécifique d'une chaîne

王林
Libérer: 2023-06-22 08:58:01
original
1065 Les gens l'ont consulté

Dans de nombreux programmes PHP, nous devons extraire une sous-chaîne avec une terminaison spécifique d'une chaîne, par exemple en extrayant tous les noms de fichiers se terminant par ".txt" à partir d'un ensemble de noms de fichiers. À l’heure actuelle, l’utilisation d’expressions régulières peut nous aider à implémenter cette fonction rapidement et efficacement.

PHP fournit de nombreuses fonctions d'expression régulière, les plus couramment utilisées sont preg_match, preg_match_all et preg_replace. Dans cet article, nous présenterons comment utiliser les fonctions preg_match et preg_match_all pour extraire des sous-chaînes avec des terminaisons spécifiques d'une chaîne.

Tout d'abord, nous devons spécifier l'expression régulière utilisée pour correspondre à une sous-chaîne de fin spécifique. Dans cet exemple, nous voulons faire correspondre toutes les sous-chaînes se terminant par ".txt", donc l'expression régulière correspondante doit être "/.txt$/" . L'expression régulière se compose des parties suivantes :

  • "/" : la balise de début de l'expression régulière.
  • ". : Correspond au caractère "." Puisque "." a une signification particulière dans les expressions régulières, il doit être échappé avec une barre oblique inverse.
  • "txt" : correspond à la chaîne "txt".
  • "$" : correspond à la fin de la chaîne.
  • "/" : La balise de fin de l'expression régulière.

Ensuite, voyons comment utiliser la fonction preg_match pour faire correspondre la première sous-chaîne se terminant par ".txt" d'une chaîne :

$string = "file1.txt file2.php file3.txt file4.html";
$pattern = "/.txt$/";
if (preg_match($pattern, $string, $match)) {
    echo "找到匹配的子字符串:".$match[0];
} else {
    echo "没有找到匹配的子字符串!";
}
Copier après la connexion

Dans cet exemple, nous définissons d'abord un fichier contenant plusieurs noms de fichiers La chaîne $string. Ensuite, nous définissons l'expression régulière $pattern pour qu'elle corresponde à la sous-chaîne se terminant par ".txt" et appelons la fonction preg_match. Le premier paramètre de la fonction est l'expression régulière, le deuxième paramètre est la chaîne à mettre en correspondance et le troisième paramètre est le résultat correspondant. Si aucun résultat n'est trouvé, la fonction renvoie false.

Enfin, nous déterminons si une sous-chaîne de fin spécifique correspond en déterminant s'il y a des éléments dans le tableau $match. Si tel est le cas, la sous-chaîne est affichée. Sinon, le message « Aucune sous-chaîne correspondante trouvée ! » est affiché.

Ensuite, voyons comment utiliser la fonction preg_match_all pour faire correspondre toutes les sous-chaînes se terminant par ".txt" à partir d'une chaîne :

$string = "file1.txt file2.php file3.txt file4.html";
$pattern = "/.txt$/";
if (preg_match_all($pattern, $string, $matches)) {
    echo "找到 ".count($matches[0])." 个匹配的子字符串:<br>";
    foreach ($matches[0] as $match) {
        echo $match."<br>";
    }
} else {
    echo "没有找到匹配的子字符串!";
}
Copier après la connexion

Dans cet exemple, nous utilisons également les variables $string et $pattern pour définir les chaînes et les expressions régulières qui doivent être assortis. Ensuite, nous avons appelé la fonction preg_match_all Contrairement à la fonction preg_match, cette fonction peut correspondre à toutes les sous-chaînes qualifiées d'une chaîne et les résultats sont renvoyés dans un tableau.

Lors de la boucle pour afficher les résultats correspondants, nous avons utilisé une boucle foreach pour parcourir le premier élément du tableau $matches. Puisque cet élément est également un tableau, nous utilisons la variable $match pour enregistrer la sous-chaîne actuellement parcourue et la générer.

Si aucun résultat correspondant n'est trouvé, "Aucune sous-chaîne correspondante trouvée !" sera également affiché.

Pour résumer, l'utilisation d'expressions régulières peut nous aider à extraire rapidement et efficacement des sous-chaînes de fin spécifiques dans des chaînes. Dans les applications pratiques, nous pouvons définir différentes expressions régulières en fonction des besoins réels et les appliquer de manière flexible en combinaison avec des fonctions telles que preg_match, preg_match_all et preg_replace.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!