Maison  >  Article  >  développement back-end  >  Applications avancées des expressions régulières en PHP

Applications avancées des expressions régulières en PHP

PHPz
PHPzoriginal
2023-06-22 18:27:111190parcourir

Dans le développement PHP, les expressions régulières sont des outils très efficaces qui peuvent aider les développeurs à effectuer rapidement des opérations de correspondance, de remplacement, d'extraction et autres de chaînes. Cet article présentera les applications avancées des expressions régulières en PHP, notamment les références arrière, les correspondances gourmandes et paresseuses, les assertions de largeur nulle, etc.

1. Backreference

Backreference est un concept très important dans les expressions régulières. Il peut utiliser le contenu de la sous-expression déjà correspondante pour faire correspondre la chaîne suivante. En PHP, lorsque vous utilisez des références arrière d'expressions régulières, vous devez utiliser le symbole spécial "" en combinaison avec des nombres.

Par exemple, l'expression régulière suivante peut correspondre à deux mots identiques consécutifs :

/^(w+)s$/

où " " représente une référence arrière à la première sous-expression, correspondant au mot précédent.

2. Correspondance gourmande et paresseuse

Dans les expressions régulières, la correspondance gourmande signifie faire correspondre autant de caractères que possible, tandis que la correspondance paresseuse signifie faire correspondre le moins de caractères possible. En PHP, vous pouvez obtenir une correspondance gourmande et paresseuse en ajoutant "?" après le quantificateur. Par défaut, la correspondance gourmande est utilisée.

Par exemple, l'expression régulière suivante peut correspondre à la balise a en HTML :

/<a.*?href="(.*?)".*?>(.*?)</a>/

Parmi elles, .? représente une correspondance paresseuse, (.?) représente l'extraction de l'URL dans la balise href et du contenu du texte dans la balise a. .

3. Assertion de largeur nulle

L'assertion de largeur nulle fait référence au fait que l'avant ou l'arrière d'une certaine position dans la chaîne correspondante répond à une certaine condition, mais le contenu correspondant n'appartient pas au résultat, qui est appelé zéro- largeur. Les assertions courantes de largeur nulle incluent l’anticipation positive, l’anticipation négative, l’anticipation positive et l’anticipation négative.

(1) Anticipation positive

Le contenu correspondant à l'anticipation positive doit immédiatement suivre le contenu à mettre en correspondance.

Par exemple, l'expression régulière suivante peut correspondre à un mot suivi d'un nombre :

/w+(?=d)/

Où, "(?=d)" signifie une anticipation prospective, une correspondance de nombres et le fait de ne pas utiliser de nombres comme résultat.

(2) Lookahead négatif

Le contenu qui est mis en correspondance avec succès par un lookahead négatif ne doit pas suivre immédiatement le contenu à mettre en correspondance.

Par exemple, l'expression régulière suivante peut correspondre à un mot qui n'est pas suivi d'un nombre :

/w+(?!d)/

où "(?!d)" représente une anticipation négative, correspondant à un contenu qui n'est pas un nombre et n'utilisant pas ce contenu par conséquent.

(3) Forward Lookback

Forward Lookback Le contenu correspondant avec succès doit être devant le contenu à mettre en correspondance.

Par exemple, l'expression régulière suivante peut correspondre aux dates où l'année précède le mois et le jour :

/(?<=d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[01]))d{4}/

where, "(?<=d{2}(0[1-9]|1[0-2 ] )(0[1-9]|1-2|3[01]))" désigne une expression régulière qui anticipe et correspond au mois et au jour, correspondant ainsi à l'année, et n'utilise pas le mois et le jour comme résultat .

(4) Lookback négatif

Le contenu qui est mis en correspondance avec succès par un lookback négatif ne doit pas se trouver devant le contenu à mettre en correspondance.

Par exemple, l'expression régulière suivante peut correspondre à toutes les lignes à l'exception des lignes commençant par . :

/(?<!^).w+/

où, "(?

4. Conclusion

Les expressions régulières jouent un rôle important dans le développement PHP, notamment dans le traitement des chaînes, le nettoyage des données, etc., et elles sont un outil indispensable. Cet article présente le contenu de base des applications avancées d'expressions régulières. Les développeurs peuvent progressivement apprendre en profondeur pour améliorer encore leurs compétences PHP.

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