Python >> Tutoriel Python >  >> Python Tag >> RegEx

Correspondance d'expression régulière Python sur une ligne

Résumé :Pour correspondre à un pattern dans un text donné en utilisant une seule ligne de code Python, utilisez la ligne import re; print(re.findall(pattern, text)) qui importe la bibliothèque d'expressions régulières re et imprime le résultat du findall() fonction au shell.

Problème :étant donné une chaîne et un modèle d'expression régulière. Faites correspondre la chaîne pour le modèle regex—dans une seule ligne de code Python !

Exemple  :Considérons l'exemple suivant qui correspond au modèle 'F.*r' contre la chaîne 'Learn Python with Finxter' .

import re
s = 'Learn Python with Finxter'
p = 'F.*r'
# Found Match of p in s: 'Finxter'

Plongeons-nous dans les différentes manières d'écrire ceci dans une seule ligne de code Python !

Exercice :Exécutez le code. Quel est le résultat de chaque méthode ? Pourquoi la sortie diffère-t-elle ?

Voulez-vous maîtriser la superpuissance des regex ? Découvrez mon nouveau livre La façon la plus intelligente d'apprendre les expressions régulières en Python avec l'approche innovante en 3 étapes pour un apprentissage actif :(1) étudiez un chapitre de livre, (2) résolvez un puzzle de code et (3) regardez une vidéo de chapitre éducatif.

Méthode 1 :findall()

Le re.findall(pattern, string, flags=0) La méthode renvoie une liste de correspondances de chaînes. En savoir plus dans notre tutoriel de blog.

# Method 1: findall()
import re; print(re.findall('F.*r', 'Learn Python with Finxter'))
# ['Finxter']

Il n'y a pas de meilleur moyen d'importer le re bibliothèque et en appelant le re.findall() fonction dans une seule ligne de code - vous devez utiliser le point-virgule A;B pour séparer les instructions A et B .

Le findall() La fonction trouve toutes les occurrences du modèle dans la chaîne.

Méthode 2 :rechercher()

Le re.search(pattern, string, flags=0) La méthode renvoie un objet match de la première correspondance. En savoir plus dans notre tutoriel de blog.

# Method 2: search()
import re; print(re.search('F.*r', 'Learn Python with Finxter'))
# <re.Match object; span=(18, 25), match='Finxter'>

Le search() la fonction trouve la première correspondance du motif dans la chaîne et renvoie un objet correspondant

Méthode 3 :match()

Le re.match(pattern, string, flags=0) La méthode renvoie un objet match si l'expression régulière correspond au début de la chaîne. En savoir plus dans notre tutoriel de blog.

# Method 3: match()
import re; print(re.match('.*F.*r', 'Learn Python with Finxter'))
# <re.Match object; span=(0, 25), match='Learn Python with Finxter'>

Le match() la fonction trouve la correspondance du motif au début de la chaîne et renvoie un objet correspondant. Dans ce cas, la chaîne entière correspond, donc l'objet de correspondance inclut la chaîne entière.

Méthode 4 :correspondance complète()

Le re.fullmatch(pattern, string, flags=0) La méthode renvoie un objet match si l'expression régulière correspond à la chaîne entière. En savoir plus dans notre tutoriel de blog.

# Method 4: fullmatch()
import re; print(re.fullmatch('.*F.*r.*', 'Learn Python with Finxter'))
#<re.Match object; span=(0, 25), match='Learn Python with Finxter'>

Le fullmatch() La fonction tente de faire correspondre la chaîne entière et renvoie un objet correspondant en cas de succès. Dans ce cas, la chaîne entière correspond, donc l'objet de correspondance inclut la chaîne entière.


Post précédent
No