Introduction aux expressions régulières en Python
Les expressions régulières sont des commandes pour la recherche et le remplacement complexes (ou simplement la recherche). Elles permettent de faire des choses très intéressantes, mais malheureusement, elles sont assez difficiles à maîtriser.
Pour commencer à travailler avec les expressions régulières
en Python, nous devons importer un module spécial
re :
import re
Le module re comprend des méthodes
destinées à travailler avec les expressions
régulières. Une expression régulière
est un ensemble de commandes et est composée
de deux types de caractères : ceux qui
se désignent eux-mêmes et les caractères de commande,
qui sont appelés caractères spéciaux.
Il est préférable de commencer à se familiariser avec les expressions régulières
sur l'exemple de la méthode sub, qui
est utilisée pour les remplacements dans une chaîne. Le premier
paramètre de la méthode accepte quoi remplacer,
le deuxième - par quoi remplacer. Dans le troisième paramètre,
nous spécifions la chaîne dans laquelle le remplacement doit être effectué.
Dans le quatrième paramètre optionnel,
nous spécifions le nombre de remplacements. Le remplacement le plus simple
à l'aide de cette méthode
ressemblera à ceci :
res = re.sub('a', '!', 'bab')
print(res) # affichera 'b!b'
Comme vous l'avez remarqué, dans l'expression régulière,
les lettres se désignent elles-mêmes. Il en va de même
pour les chiffres. Remplaçons le chiffre
2 par ! :
res = re.sub('2', '!', '12abc3')
print(res) # affichera '1!abc3'
En revanche, le point est un caractère spécial
et désigne n'importe quel caractère. Dans l'exemple
suivant, trouvons une sous-chaîne selon ce modèle :
la lettre 'x', puis n'importe quel
caractère, puis à nouveau la lettre 'x' :
res = re.sub('x.x', '!', 'xax eee')
print(res) # affichera '! eee'
Soit une chaîne :
txt = 'ahb acb aeb aeeb adcb axeb'
Écrivez une expression régulière qui trouvera les chaînes
'ahb', 'acb', 'aeb'
selon le modèle : lettre 'a', n'importe quel
caractère, lettre 'b'.
Soit une chaîne :
txt = 'aba aca aea abba adca abea'
Écrivez une expression régulière qui trouvera les chaînes
'abba', 'adca', 'abea'
selon le modèle : lettre 'a', 2
caractères quelconques, lettre 'a'.
Soit une chaîne :
txt = 'aba aca aea abba adca abea'
Écrivez une expression régulière qui trouvera les chaînes
'abba' et 'abea', sans capturer
'adca'.