Maison >développement back-end >tutoriel php >Comment puis-je faire correspondre un modèle avec un nombre spécifique d'occurrences à l'aide d'expressions régulières ?

Comment puis-je faire correspondre un modèle avec un nombre spécifique d'occurrences à l'aide d'expressions régulières ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-11 20:47:02978parcourir

How can I match a pattern with a specific number of occurrences using regular expressions?

Quantification des occurrences exactes : Regex pour des heures spécifiques

Dans les expressions régulières, nous rencontrons souvent des modèles qui nécessitent un nombre spécifique d'occurrences. Cependant, il n'existe pas de quantificateur unique qui réponde au besoin de faire correspondre un élément exactement n ou m fois.

Considérez l'expression régulière :

X{n}|X{m}

Cette expression tente de tester l'occurrence de l’élément X exactement n ou m fois. Cependant, il utilise une combinaison de quantificateurs, qui peuvent ne pas être efficaces.

Approche alternative

Une approche alternative pour quantifier des occurrences exactes est :

X{m}(X{k})?

Ici :

  • X{m} garantit l'occurrence de l'élément X exactement m fois.
  • (X{k}) ? est un groupe facultatif qui correspond à l'élément X k fois supplémentaires, où k est la différence entre n et m (c'est-à-dire k = n - m).

Exemple :

Pour faire correspondre un motif où l'élément "A" apparaît exactement 3 ou 5 fois, nous pouvons utiliser ce qui suit regex :

A{3}(A{2})?

Cette regex correspondra à des chaînes comme "AAA" (3 occurrences) ou "AAAAA" (5 occurrences) mais pas "AA" ou "AAAAAAA".

Conclusion

Bien qu'il n'existe pas de quantificateur unique permettant de faire correspondre exactement n ou m occurrences, la combinaison d'accolades {n} et {m} (pour n != m) ou l'utilisation de groupes facultatifs peuvent efficacement réaliser cette fonctionnalité dans les expressions régulières.

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