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é re
qui 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 ,r ou n ) est présent |
Essayez-le » |
[a-n] | Renvoie une correspondance pour tout caractère minuscule, par ordre alphabétique entrea et n |
Essayez-le » |
[^arn] | Renvoie une correspondance pour n’importe quel caractère SAUF a ,r et n |
Essayez-le » |
[0123] | Renvoie une correspondance où l’un des chiffres spécifiés (0 ,1 , 2 ou ) sont présents |
Essayez-le » |
[0-9] | Renvoie une correspondance pour tout chiffre entre0 et 9 |
Essayez-le » |
[0-5][0-9] | Renvoie une correspondance pour tous les nombres à deux chiffres de 00 et
|
Essayez-le » |
[a-zA-Z] | Renvoie une correspondance pour tout caractère alphabétiquement compris entrea et z minuscule 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