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

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

Susan Sarandon
Susan Sarandonoriginal
2024-12-02 16:32:11975parcourir

How Can I Extract Substrings Between Markers in Python Using Regular Expressions?

Correspondance de sous-chaînes entre marqueurs en Python

Lorsque vous travaillez avec des chaînes en Python, vous pouvez rencontrer le besoin d'extraire une sous-chaîne spécifique située entre deux marqueurs connus. Cette tâche peut être accomplie à l'aide d'expressions régulières, un outil puissant pour la correspondance de modèles.

Solution utilisant des expressions régulières

Pour extraire la sous-chaîne entre les marqueurs en Python, suivez ces étapes :

  1. Importez le module re pour la fonctionnalité d'expression régulière.
  2. Utilisez la méthode re.search() pour rechercher le motif qui correspond aux marqueurs et à la sous-chaîne qui vous intéresse.
  3. Si le motif est trouvé, récupérez la sous-chaîne correspondante à l'aide de la méthode group().
  4. Attribuez la sous-chaîne extraite à une variable pour une utilisation ultérieure .

Exemple

Considérez le code suivant extrait :

import re

text = 'gfgfdAAA1234ZZZuijjk'

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

# found: '1234'

Dans cet exemple, la chaîne de texte contient la sous-chaîne d'intérêt, qui est située entre les marqueurs « AAA » et « ZZZ ». À l'aide de la fonction re.search(), nous recherchons le modèle 'AAA(. ?)ZZZ'. Le (. ?)部分匹配零个或更多字符,尽可能短。

Si le modèle est trouvé, nous récupérons la sous-chaîne correspondante en utilisant m.group(1) où 1 indique le premier groupe de capture dans le motif. La sous-chaîne extraite est ensuite stockée dans la variable trouvée.

Alternativement, vous pouvez utiliser l'approche suivante :

import re

text = 'gfgfdAAA1234ZZZuijjk'

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

# found: '1234'

Cette approche gère le cas où les marqueurs ne sont pas trouvés dans la chaîne d'origine en fournissant un comportement par défaut dans le bloc except.

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