Maison > développement back-end > Tutoriel Python > Comment puis-je faire correspondre une sous-chaîne spécifique sans inclure de caractères indésirables en utilisant une expression régulière non gourmande en Python ?

Comment puis-je faire correspondre une sous-chaîne spécifique sans inclure de caractères indésirables en utilisant une expression régulière non gourmande en Python ?

DDD
Libérer: 2024-11-09 19:10:02
original
996 Les gens l'ont consulté

How do I match a specific substring without including unwanted characters using non-greedy regex in Python?

Expressions régulières non gourmandes Python

Lorsqu'il s'agit d'expressions régulières, l'opérateur standard * est gourmand, ce qui signifie qu'il tente de correspondre autant de l'entrée que possible. Cependant, il existe des scénarios dans lesquels une approche non gourmande est requise. Cet article explore l'utilisation d'expressions régulières non gourmandes en Python, en se concentrant spécifiquement sur un cas où l'objectif est de faire correspondre une sous-chaîne spécifique sans inclure de caractères indésirables.

Problème

Considérez la chaîne d'entrée suivante : "a (b) c (d) e"

Si vous utilisez l'expression régulière gourmande standard "(.)", Python correspondra à "b) c (d ". En effet, quantifie l'expression précédente comme zéro ou plusieurs fois, et le comportement gourmand l'amène à correspondre autant que possible.

Solution

Pour rendre l'expression régulière non gourmande, utilisez le qualificatif ?. Cela indique à Python de faire correspondre l'expression le moins de fois possible, ce qui donne "(.?)" correspondant uniquement à "b".

Implémentation Python

import re

input_string = "a (b) c (d) e"
non_greedy_regex = r"(.*?)"

match = re.search(non_greedy_regex, input_string)
if match:
    print(match.group(1))
Copier après la connexion

Sortie :

b
Copier après la connexion

Conclusion

Le qualificatif *? fournit un moyen pratique et concis de contrôler le comportement des expressions régulières en Python. En spécifiant que la correspondance doit être aussi courte que possible, cela vous permet de spécifier avec précision la sous-chaîne souhaitée sans inclure par inadvertance des caractères indésirables.

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