Python Tutorial

Python RegEx


Un RegEx, ou Regular Expression, est une séquence de caractères qui forme un modèle de recherche.

RegEx peut être utilisé pour vérifier si une chaîne contient le modèle de recherche spécifié.


Module RegEx

Python a un package intégré appelé requi peut être utilisé pour travailler avec des expressions régulières.

Importez le re module:


RegEx en Python

Lorsque vous avez importé le re module, vous pouvez commencer à utiliser des expressions régulières :

Exemple

Recherchez la chaîne pour voir si elle commence par « The » et se termine par « Spain »:

importer re

txt = « La pluie en Espagne »
x = re.search(« ^L’.*Espagne$ », txt)

Essayez-le vous-même »


Fonctions RegEx

Le re Le module propose un ensemble de fonctions qui nous permet de rechercher une chaîne pour une correspondance :

Fonction Description
Trouver tout Renvoie une liste contenant toutes les correspondances
recherche Renvoie un objet Match s’il y a une correspondance n’importe où dans la chaîne
diviser Renvoie une liste où la chaîne a été divisée à chaque correspondance
sous Remplace une ou plusieurs correspondances par une chaîne


Métacaractères

Les métacaractères sont des caractères ayant une signification particulière :

Personnage Description Exemple Essayez-le
[] Un ensemble de personnages « [a-m] » Essayez-le »
Signale une séquence spéciale (peut également être utilisé pour échapper des caractères spéciaux) « d » Essayez-le »
. N’importe quel caractère (sauf le caractère de nouvelle ligne) « il..o » Essayez-le »
^ Commence avec « ^ bonjour » Essayez-le »
$ Se termine par « planète$ » Essayez-le »
* Zéro ou plusieurs occurrences « il.*o » Essayez-le »
+ Une ou plusieurs occurrences « il.+o » Essayez-le »
? Zéro ou une occurrence « il.?o » Essayez-le »
{} Exactement le nombre d’occurrences spécifié « il. {2}o » Essayez-le »
| Soit ou « tombe|reste » Essayez-le »
() Capturer et regrouper

Séquences spéciales

Une séquence spéciale est une suivi de l’un des caractères de la liste ci-dessous, et a une signification particulière :

Personnage Description Exemple Essayez-le
UN Renvoie une correspondance si les caractères spécifiés sont au début de la chaîne « ALe » Essayez-le »
b Renvoie une correspondance où les caractères spécifiés sont au début ou à la fin d’un mot
(le « r » au début s’assure que la chaîne est traitée comme une « chaîne brute »)
r »bain »
r »ainb »
Essayez-le »
Essayez-le »
B Renvoie une correspondance où les caractères spécifiés sont présents, mais PAS au début (ou à la fin) d’un mot
(le « r » au début s’assure que la chaîne est traitée comme une « chaîne brute »)
r »Bain »
r »ainB »
Essayez-le »
Essayez-le »
d Renvoie une correspondance où la chaîne contient des chiffres (nombres de 0 à 9) « d » Essayez-le »
D Renvoie une correspondance où la chaîne NE contient PAS de chiffres « D » Essayez-le »
s Renvoie une correspondance où la chaîne contient un caractère d’espace blanc « s » Essayez-le »
S Renvoie une correspondance où la chaîne NE contient PAS d’espace blanc « S » Essayez-le »
w Renvoie une correspondance où la chaîne contient des caractères de mot (caractères de a à Z, chiffres de 0 à 9 et caractère de soulignement _) « w » Essayez-le »
W Renvoie une correspondance où la chaîne NE contient PAS de caractères de mot « W » Essayez-le »
Z Renvoie une correspondance si les caractères spécifiés sont à la fin de la chaîne « EspagneZ » Essayez-le »

Ensembles

Un ensemble est un ensemble de caractères à l’intérieur d’une paire de crochets
[]
avec une signification particulière :

Ensemble Description Essayez-le
[arn] Renvoie une correspondance où l’un des caractères spécifiés (a,
rou n) est présent
Essayez-le »
[a-n] Renvoie une correspondance pour tout caractère minuscule, par ordre alphabétique entre
a et n
Essayez-le »
[^arn] Renvoie une correspondance pour n’importe quel caractère SAUF a,
ret n
Essayez-le »
[0123] Renvoie une correspondance où l’un des chiffres spécifiés (0,
1, 2ou
3
) sont présents
Essayez-le »
[0-9] Renvoie une correspondance pour tout chiffre entre
0 et 9
Essayez-le »
[0-5][0-9] Renvoie une correspondance pour tous les nombres à deux chiffres de 00 et
59
Essayez-le »
[a-zA-Z] Renvoie une correspondance pour tout caractère alphabétiquement compris entre
a et zminuscule OU majuscule
Essayez-le »
[+] En ensembles, +, *,
., |,
(), $,{}
n’a pas de signification particulière, donc [+] signifie : renvoie une correspondance pour tout
+ caractère dans la chaîne
Essayez-le »

La fonction findall()

Le findall() La fonction renvoie une liste contenant toutes les correspondances.

Exemple

Imprimez une liste de toutes les correspondances :

importer re

txt = « La pluie en Espagne »
x = re.findall(« ai », txt)
impression(x)

Essayez-le vous-même »

La liste contient les correspondances dans l’ordre où elles sont trouvées.

Si aucune correspondance n’est trouvée, une liste vide est renvoyée :

Exemple

Renvoie une liste vide si aucune correspondance n’a été trouvée :

importer re

txt = « La pluie en Espagne »
x = re.findall(« Portugal », txt)
impression(x)

Essayez-le vous-même »


La fonction recherche()

Le search() La fonction recherche une correspondance dans la chaîne et renvoie un objet Match s’il y a une correspondance.

S’il y a plus d’une correspondance, seule la première occurrence de la correspondance sera renvoyée :

Exemple

Recherchez le premier caractère d’espace blanc dans la chaîne :

importer re

txt = « La pluie en Espagne »
x = re.search(« s », txt)

print(« Le premier caractère d’espace blanc est situé à la position : », x.start())

Essayez-le vous-même »

Si aucune correspondance n’est trouvée, la valeur None est renvoyé :

Exemple

Effectuez une recherche qui ne renvoie aucune correspondance :

importer re

txt = « La pluie en Espagne »
x = re.search(« Portugal », txt)
impression(x)

Essayez-le vous-même »


La fonction split()

Le split() La fonction renvoie une liste où la chaîne a été divisée à chaque correspondance :

Exemple

Fractionner à chaque caractère d’espace blanc :

importer re

txt = « La pluie en Espagne »
x = re.split(« s », txt)
impression(x)

Essayez-le vous-même »

Vous pouvez contrôler le nombre d’occurrences en spécifiant le
maxsplit
paramètre:

Exemple

Fractionne la chaîne uniquement à la première occurrence :

importer re

txt = « La pluie en Espagne »
x = re.split(« s », txt, 1)
impression(x)

Essayez-le vous-même »


La fonction sub()

Le sub() La fonction remplace les correspondances par le texte de votre choix :

Exemple

Remplacez chaque caractère d’espace blanc par le chiffre 9 :

importer re

txt = « La pluie en Espagne »
x = re.sub(« s », « 9 », txt)
impression(x)

Essayez-le vous-même »

Vous pouvez contrôler le nombre de remplacements en spécifiant le
count
paramètre:

Exemple

Remplacez les 2 premières occurrences :

importer re

txt = « La pluie en Espagne »
x = re.sub(« s », « 9 », txt, 2)
impression(x)

Essayez-le vous-même »


Faire correspondre l’objet

Un Match Object est un objet contenant des informations sur la recherche et le résultat.

Note: S’il n’y a pas de correspondance, la valeur None sera renvoyé, au lieu de l’objet Match.

Exemple

Effectuez une recherche qui renverra un Match Object :

importer re

txt = « La pluie en Espagne »
x = re.search(« ai », txt)
print(x) #ceci imprimera un objet

Essayez-le vous-même »

L’objet Match possède des propriétés et des méthodes utilisées pour récupérer des informations sur la recherche et le résultat :

.span() renvoie un tuple contenant les positions de début et de fin de la correspondance.
.string renvoie la chaîne passée dans la fonction
.group() renvoie la partie de la chaîne où il y avait une correspondance

Exemple

Imprimer la position (position de début et de fin) de la première occurrence de correspondance.

L’expression régulière recherche tous les mots commençant par un « S » majuscule :

importer re

txt = « La pluie en Espagne »
x = re.search(r »bSw+ », txt)
imprimer(x.span())

Essayez-le vous-même »

Exemple

Affichez la chaîne transmise à la fonction :

importer re

txt = « La pluie en Espagne »
x = re.search(r »bSw+ », txt)
imprimer(x.string)

Essayez-le vous-même »

Exemple

Imprimer la partie de la chaîne où il y avait une correspondance.

L’expression régulière recherche tous les mots commençant par un « S » majuscule :

importer re

txt = « La pluie en Espagne »
x = re.search(r »bSw+ », txt)
imprimer(x.group())

Essayez-le vous-même »

Note: S’il n’y a pas de correspondance, la valeur None sera renvoyé, au lieu de l’objet Match.


#Python #RegEx

Articles similaires

Voir Aussi
Fermer
Bouton retour en haut de la page