Maison >développement back-end >Tutoriel Python >Comment extraire des sous-chaînes entre des marqueurs en Python à l'aide d'expressions régulières ?

Comment extraire des sous-chaînes entre des marqueurs en Python à l'aide d'expressions régulières ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-07 01:42:10612parcourir

How to Extract Substrings Between Markers in Python Using Regular Expressions?

Extraction de sous-brins entre marqueurs

Étant donné une chaîne et une paire de marqueurs, la tâche consiste à extraire la sous-chaîne entre ces marqueurs. Par exemple, considérons la chaîne « gfgfdAAA1234ZZZuijk ». L'objectif est d'obtenir la partie '1234'.

En Python, les expressions régulières apportent une solution puissante à ce problème. Considérez l'extrait de code suivant :

import re

text = 'gfgfdAAA1234ZZZuijjk'

m = re.search('AAA(.+?)ZZZ', text)
if m:
    found = m.group(1)

# found: 1234

L'expression « AAA(. ?)ZZZ » correspond à n'importe quelle sous-chaîne entre « AAA » et « ZZZ ». Les parenthèses dans l'expression capturent la sous-chaîne en tant que groupe et le '. ?' le quantificateur garantit qu'il correspond à n'importe quel nombre de caractères de manière non gourmande.

La fonction re.search() trouve la première occurrence du modèle dans le texte et renvoie un objet de correspondance, qui contient le(s) groupe(s) capturé(s) . La méthode group(1) extrait la sous-chaîne entre les marqueurs et l'affecte à la variable trouvée.

Alternativement, le bloc try-sauf peut gérer les erreurs potentielles :

import re

text = 'gfgfdAAA1234ZZZuijjk'

try:
    found = re.search('AAA(.+?)ZZZ', text).group(1)
except AttributeError:
    # AAA, ZZZ not found in the original string
    found = '' # Your error handling here

# found: 1234

Cette approche garantit que le programme continuera à s'exécuter même si les marqueurs ne sont pas présents dans le texte, car il gère l'AttributeError qui se produit lorsque la méthode group(1) échoue.

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