Maison > Article > développement back-end > Expression régulière PHP en action : faire correspondre les noms de fichiers
Pratique des expressions régulières PHP : faire correspondre les noms de fichiers
L'expression régulière est un puissant outil de traitement de texte. La fonction d'expression régulière fournie avec PHP fournit de nombreuses méthodes de correspondance et de remplacement de modèles. Lors du traitement des fichiers, il est souvent nécessaire de filtrer et d'opérer en fonction des noms de fichiers. Cet objectif peut être facilement atteint à l'aide d'expressions régulières.
Tout d'abord, nous devons extraire l'extension dans le nom de fichier. En PHP, vous pouvez utiliser la fonction pathinfo pour décomposer un chemin en parties telles que des répertoires, des noms de fichiers et des extensions. Cependant, si vous devez uniquement extraire la partie extension du nom de fichier, vous pouvez utiliser des expressions régulières pour y parvenir.
Vous pouvez utiliser l'expression régulière suivante pour faire correspondre la partie extension du nom de fichier :
preg_match('/.(?!.*/)([^./]+)$/', $filename, $matches);
L'anticipation inversée est utilisée dans l'expression régulière, qui correspond à tout caractère qui n'est pas suivi d'une barre oblique et d'un point décimal. Cela garantit que seule la partie située après la dernière virgule décimale correspond, et non les points décimaux dans le chemin du fichier. Les résultats correspondants sont stockés dans le tableau $matches et l'extension correspondante peut être obtenue via $matches[1].
Par exemple, pour un fichier nommé photo.jpg, utilisez l'expression régulière ci-dessus pour extraire jpg comme extension.
Ensuite, nous pouvons utiliser des expressions régulières pour faire correspondre des formats de noms de fichiers spécifiques. Par exemple, si nous voulons faire correspondre les noms de fichiers photo commençant par une date et suivis de 4 chiffres, nous pouvons utiliser l'expression régulière suivante :
preg_match('/^d{8}-d{4}.jpg$/', $filename, $matches);
Les ancres de début et de fin sont utilisées dans l'expression régulière pour garantir que le fichier correspondant le nom doit commencer par 8 chiffres et se terminer par une combinaison de chiffres, un trait de soulignement, 4 chiffres et .jpg. Les résultats de la correspondance sont stockés dans le tableau $matches. Si aucune correspondance n'est réussie, $matches est un tableau vide.
Par exemple, pour le fichier nommé 20210101-1145.jpg, l'expression régulière ci-dessus peut être utilisée pour établir une correspondance réussie.
Enfin, nous pouvons utiliser des expressions régulières pour faire correspondre plusieurs noms de fichiers dans différents formats. Par exemple, si nous voulons faire correspondre les noms de fichiers qui incluent les extensions .jpg, .png et .gif, nous pouvons utiliser l'expression régulière suivante :
preg_match('/.(jpg|png|gif)$/', $filename, $matches);
L'expression régulière utilise des jeux de caractères et des groupes de capture pour faire correspondre les noms de fichiers se terminant par . jpg, . La partie se terminant par png ou .gif. Les résultats de la correspondance sont stockés dans le tableau $matches. Si aucune correspondance n'est réussie, $matches est un tableau vide.
Par exemple, pour un fichier nommé photo.jpg, l'expression régulière ci-dessus peut être utilisée pour correspondre avec succès. De même, les fichiers nommés logo.png et banner.gif peuvent également être mis en correspondance avec succès.
Conclusion
Dans le traitement de fichiers, les expressions régulières peuvent nous aider à faire correspondre et à manipuler facilement les noms de fichiers. Cet article décrit comment utiliser des expressions régulières pour faire correspondre les extensions de nom de fichier, les formats de nom de fichier spécifiques et plusieurs formats de nom de fichier, et fournit un exemple de code correspondant. En comprenant et en maîtrisant ces compétences, vous pouvez améliorer l'efficacité et la précision du traitement des documents.
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!