Maison > développement back-end > Tutoriel Python > Quelle est la principale différence entre « re.match » et « re.search » de Python ?

Quelle est la principale différence entre « re.match » et « re.search » de Python ?

DDD
Libérer: 2024-12-22 12:54:17
original
607 Les gens l'ont consulté

What's the Key Difference Between Python's `re.match` and `re.search`?

Comprendre la différence clé entre re.match et re.match

Dans le module re de Python, les fonctions match() et search() jouent des rôles distincts dans la correspondance de modèles. La principale différence réside dans leurs points d'ancrage.

re.match

La fonction match() vérifie si un modèle existe au début de la chaîne d'entrée. Il ne prend pas en compte le reste de la chaîne, garantissant ainsi que la correspondance se produit exclusivement au début. Cela signifie que même si le modèle apparaît ailleurs dans la chaîne, re.match ne renverra pas de résultat.

re.search

En revanche, re.search examine la chaîne d'entrée entière, à la recherche de toute occurrence du modèle. Il renvoie un objet de correspondance si le modèle est trouvé n'importe où dans la chaîne. Cette fonction est moins restrictive que re.match, car elle ne nécessite pas que le modèle commence la chaîne.

Considérations clés

Lors de la sélection de la fonction à utiliser, tenez compte ce qui suit :

  • Utilisez re.match lorsque vous devez vous assurer que le motif apparaît au début de la chaîne.
  • Utilisez re.search lorsque vous souhaitez trouver une occurrence du modèle, quelle que soit sa position dans la chaîne.
  • re.match est généralement plus rapide que re.search car il a un espace de recherche plus petit.

Exemples du monde réel

Pour illustrer la différence, considérons ce qui suit string :

"This is a sentence with multiple words."
Copier après la connexion

L'utilisation de re.match avec le modèle "This" réussira, tandis que l'utilisation de re.search réussira également car "This" apparaît au début de la chaîne. Cependant, si nous recherchons le modèle « with », seul re.search renverra un résultat car « with » ne commence pas la chaîne.

Maintenant, considérons une chaîne avec des sauts de ligne :

"Line 1\nLine 2"
Copier après la connexion

L'utilisation de re.match("^Line 2", string, re.MULTILINE) échouera car "^" s'ancre au début de la chaîne et ne correspond pas après une nouvelle ligne. Cependant, re.search("^Line 2", string, re.MULTILINE) réussira car re.search n'a pas la même contrainte de position.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal