Maison  >  Article  >  développement back-end  >  L'utilisation et la différence entre le mode gourmand et le mode non gourmand dans les expressions régulières Python

L'utilisation et la différence entre le mode gourmand et le mode non gourmand dans les expressions régulières Python

零到壹度
零到壹度original
2018-04-02 10:54:073167parcourir

Les expressions régulières ne sont pas propres à Python, mais constituent un ensemble indépendant de syntaxe pris en charge par de nombreux langages de programmation. La syntaxe des expressions régulières utilisée dans les différentes langues n'est pas exactement la même, mais elle est généralement similaire. Cet article se concentre sur l'utilisation et la différence entre le mode gourmand et le mode non gourmand. Par défaut, les expressions régulières sont mises en correspondance selon le mode gourmand, c'est-à-dire pour faire correspondre autant de contenu que possible. Par exemple :

Lutilisation et la différence entre le mode gourmand et le mode non gourmand dans les expressions régulières Python

Dans le code ci-dessus, le premier b de l'expression régulière signifie correspondre au début du mot, suivi de la lettre b, ce qui signifie Correspond aux mots commençant par la lettre b, suivi d'un point. Cela signifie correspondre à n'importe quel caractère (y compris les espaces), puis le signe plus + signifie que tout caractère précédent apparaît une ou plusieurs fois, et le dernier b signifie correspondre à la fin de le mot. La question est donc : qu’est-ce qui compte comme fin d’un mot ? Les espaces et les signes de ponctuation sont tous deux comptés comme des fins de mots, mais les expressions régulières utilisent le mode gourmand par défaut, qui consiste à faire correspondre autant de contenu que possible, de sorte que le code ci-dessus corresponde à la dernière fin de mot du texte. Comme le montre l'image :

Lutilisation et la différence entre le mode gourmand et le mode non gourmand dans les expressions régulières Python

Alors, comment pouvons-nous faire correspondre uniquement les mots commençant par la lettre b au lieu de comme ci-dessus ? Le mode non gourmand peut être utilisé. Le mode non gourmand se complète à l'aide du point d'interrogation "?". Dans l'expression régulière, si le point d'interrogation est précédé d'un caractère ou d'un sous-motif ordinaire, cela signifie que le caractère ou le sous-motif précédant le point d'interrogation peut ou peut ne pas apparaître. Mais si le point d'interrogation suit un contenu tel que +, * et {m,n}, il indique un mode non gourmand, c'est-à-dire correspondant au moins de contenu possible. Prenons le problème ci-dessus comme exemple, passez en mode non gourmand, par exemple :

Lutilisation et la différence entre le mode gourmand et le mode non gourmand dans les expressions régulières Python

Le code suivant démontre en outre la différence entre le mode gourmand et mode non gourmand :

Lutilisation et la différence entre le mode gourmand et le mode non gourmand dans les expressions régulières Python

Bien sûr, revenons à la question initiale de cet article, si vous souhaitez simplement faire correspondre des mots commençant par la lettre b , vous n'avez pas besoin de vous donner beaucoup de mal et d'utiliser simplement w. C'est très bien, car w ne peut faire correspondre que des lettres, des chiffres ou des traits de soulignement, pas des espaces. Par exemple :

Lutilisation et la différence entre le mode gourmand et le mode non gourmand dans les expressions régulières Python

Recommandations associées :

Somme d'algorithme glouton dans une expression régulière concernant l'application d'algorithme non gourmand en python

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