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 :
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 "没有找到匹配的子字符串!"; }
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 "没有找到匹配的子字符串!"; }
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!