RegEx Python

RegEx ou expression régulière est une séquence de caractères formant un motif de recherche.

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

RegEx

Python propose un module nommé re du paquet intégré,可用于处理表达式 régulières。

Importation re Module :

import re

RegEx en Python

Importation re Après le module, vous pouvez commencer à utiliser les expressions régulières :

Exemple

Recherche de la chaîne pour voir si elle commence par "China" et se termine par "country" :

import re
txt = "China is a great country"
x = re.search("^China.*country$", txt)

Exécution de l'exemple

Fonctions RegEx

re Le module fournit un ensemble de fonctions permettant de rechercher des chaînes pour des correspondances :

Fonction Description
findall Retourne une liste contenant toutes les correspondances
search Retourne un objet Match si une correspondance existe à n'importe quel endroit dans la chaîne
split Retourne une liste de chaînes divisées à chaque correspondance
sub Remplace une ou plusieurs correspondances par une chaîne

Caractère métacaractère

Les caractères métacaractères sont des caractères ayant un sens spécial :

Caractère Description Exemple TIY
[] Un ensemble de caractères "[a-m]" Essayez
\ Illustration de séquence spéciale (peut également être utilisée pour échapper aux caractères spéciaux) "\d" Essayez
. Tous les caractères (sauf les caractères d'octroi de saut de ligne) "he..o" Essayez
^ Commence par "^hello" Essayez
$ Se termine par "world$" Essayez
* Apparitions zéro ou plusieurs fois "aix*" Essayez
+ Apparitions une ou plusieurs fois "aix+" Essayez
{} Apparitions spécifiquement indiquées "al{2}" Essayez
| l'un ou l'autre "falls|stays" Essayez
()) Capture et grouping

Séquence spéciale

Une séquence spéciale est \ suivi de l'un des caractères de la table suivante, ayant un sens spécial :

Caractère Description Exemple TIY
\A Retourne un élément correspondant si le caractère spécifié se trouve au début de la chaîne "\AThe" Essayez
\b Retourne un élément correspondant où le caractère spécifié est situé au début ou à la fin du mot r"\bain"
r"ain\b"
Essayez
Essayez
\B Retourne un élément correspondant où le caractère spécifié existe mais n'est pas au début (ou à la fin) du mot r"\Bain"
r"ain\B"
Essayez
Essayez
\d Retourne un élément correspondant où la chaîne contient des chiffres (chiffres 0-9) "\d" Essayez
\D Retourne un élément correspondant où la chaîne ne contient pas de chiffres "\D" Essayez
\s Retourne un élément correspondant où la chaîne contient des caractères blancs "\s" Essayez
\S Retourne un élément correspondant où la chaîne ne contient pas de caractères blancs "\S" Essayez
\w Retourne un élément correspondant où la chaîne contient tout caractère de mot
(Les caractères de l'alphabet de A à Z, les chiffres de 0 à 9 et le caractère de soulignement _)
"\w" Essayez
\W Retourne un élément correspondant où la chaîne ne contient aucun caractère de mot "\W" Essayez
\Z Retourne l'élément correspondant si le caractère spécifié se trouve à la fin de la chaîne "Spain\Z" Essayez

Ensemble (Set)

L'ensemble (Set) est formé de deux crochets [] Un ensemble de caractères, ayant des significations spéciales :

Ensemble Description Essayez
[arn] Retourne une correspondance où l'un des caractères spécifiés (a, r ou n) existe Essayez
[a-n] Retourne les correspondances de tous les caractères minuscules entre a et n Essayez
[^arn] Retourne les correspondances de tous les caractères autres que a, r et n Essayez
[0123] Retourne les correspondances contenant n'importe quel nombre spécifié (0, 1, 2 ou 3) Essayez
[0-9] Retourne les correspondances de tous les chiffres entre 0 et 9 Essayez
[0-5][0-9] Retourne les correspondances de tous les chiffres entre 0 et 9 Essayez
[a-zA-Z] Retourne les correspondances de tous les caractères entre a et z, minuscules ou majuscules Essayez
[+] Dans l'ensemble, +, *, ., |, (), $, {} n'ont pas de signification spéciale, donc [+] signifie : retourne les correspondances de tous les caractères + dans la chaîne de caractères Essayez

Fonction findall()

findall() La fonction retourne une liste contenant toutes les correspondances :

Exemple

Imprimez la liste de toutes les correspondances :

import re
str = "China is a great country"
x = re.findall("a", str)
print(x)

Exécution de l'exemple

Cette liste contient les correspondances trouvées dans l'ordre :

Retourne une liste vide si aucune correspondance n'est trouvée :

Exemple

Retourne une liste vide si la correspondance n'est pas trouvée :

import re
str = "China is a great country"
x = re.findall("USA", str)
print(x)

Exécution de l'exemple

Fonction search()

search() La fonction recherche la correspondance dans la chaîne de caractères et retourne un objet Match si une correspondance existe.

Si plusieurs correspondances sont trouvées, le premier correspondant est retourné uniquement :

Exemple

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

import re
str = "China is a great country"
x = re.search("\s", str)
print("La première caractère d'espace est situé à la position :", x.start())

Exécution de l'exemple

Si la correspondance n'est pas trouvée, la valeur retournée est : None

Exemple

Effectuez une recherche sans retourner la correspondance :

import re
str = "China is a great country"
x = re.search("USA", str)
print(x)

Exécution de l'exemple

Fonction split()

split() La fonction retourne une liste où la chaîne de caractères est divisée à chaque correspondance :

Exemple

Divisez la chaîne de caractères à chaque caractère d'espace :

import re
str = "China is a great country"
x = re.split("\s", str)
print(x)

Exécution de l'exemple

Vous pouvez spécifier maxsplit Utilisez un paramètre pour contrôler le nombre d'apparitions :

Exemple

Divisez la chaîne de caractères uniquement au premier caractère d'espace :

import re
str = "China is a great country"
x = re.split("\s", str, 1)
print(x)

Exécution de l'exemple

Fonction sub()

sub() La fonction remplace la correspondance par le texte que vous avez choisi :

Exemple

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

import re
str = "China is a great country"
x = re.sub("\s", "9", str)
print(x)

Exécution de l'exemple

Vous pouvez spécifier count Paramètres pour contrôler le nombre de remplacements :

Exemple

Remplacement des deux premières occurrences :

import re
str = "China is a great country"
x = re.sub("\s", "9", str, 2)
print(x)

Exécution de l'exemple

Objet Match

L'objet Match est un objet contenant des informations sur la recherche et les résultats.

Remarque :Si aucune correspondance n'est trouvée, la valeur de retour Noneau lieu de l'objet Match.

Exemple

La recherche retournera un objet Match :

import re
str = "China is a great country"
x = re.search("a", str)
print(x) # Affichera un objet

Exécution de l'exemple

L'objet Match fournit des attributs et des méthodes pour récupérer des informations sur la recherche et les résultats :

  • span() Le tuple retourné contient la position de début et de fin de la correspondance
  • .string Retourner la chaîne passée à la fonction
  • group() Retourner la partie de la chaîne correspondante

Exemple

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

Recherche d'expressions régulières commençant par une majuscule "C" pour toute les mots :

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.span())

Exécution de l'exemple

Exemple

Imprimer la chaîne passée à la fonction :

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.string)

Exécution de l'exemple

Exemple

Imprimer la partie de la chaîne correspondante.

Recherche d'expressions régulières commençant par une majuscule "C" pour toute les mots :

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.group())

Exécution de l'exemple

Remarque :Si aucun élément correspondant n'est trouvé, la valeur de retour Noneau lieu de l'objet Match.