« Expressions rationelles en Python » : différence entre les versions
Aller à la navigation
Aller à la recherche
m (version 1) |
mAucun résumé des modifications |
||
Ligne 1 : | Ligne 1 : | ||
Les expressions régulières (rationelles en français ou regular expressions anglais) sont quelque chose de merveilleux. | |||
== Modules utilisés == | == Modules utilisés == |
Version actuelle datée du 11 février 2024 à 15:48
Les expressions régulières (rationelles en français ou regular expressions anglais) sont quelque chose de merveilleux.
Modules utilisés
Et oui contrairement à perl où les regexp sont incluse dans le langage dans python il faut utiliser un module. Bon je crois qu'il est là par défaut.
on doit donc faire un :
import re
pour pouvoir l'utiliser.
Utilisation
Recherche
Pour faire une recherche dans une chaine:
import re
#Teste si la chaine commence par "Les" et se termine par "duchesse"
txt = "Les chausettes de l'archiduchesses"
x = re.search("^Les.*duchesses$", txt)
if x:
print("OUI! Ca colle!")
else:
print("Non")
Remplacement
On peut remplacer classiquement un motif "regexp" par une chaine donnée:
import re
# Remplace les espaces par des "underscore"
txt = "Les chausettes de l'archiduchesses"
x = re.sub("\s", "_", txt)
print(x)
Vas nous donner :
Les_chausettes_de_l'archiduchesses
Les fonctions plus subtiles
findall
Donne la liste de toutes les chaines correspondant au motif.
import re
#Return a list containing every occurrence of "ai":
txt = "Les chaussettes de l'archiduchesse sont-elles sèches? Archi-sèches ?"
x = re.findall(".s+.", txt)
print(x)
On cherche la liste des chaînes du texte contenant un ou plusieurs "s" à la suite précédé et suivi d'un caractère quelconque.? Ça nous donne:
['es ', 'usse', 'es ', 'esse', ' so', 'es ', 'es?', '-sè', 'es ']