snt
Sciences Numériques et Technologie en classe de seconde au Lycée Saint-Exupéry de La Rochelle.
module re
puissantes
...récupérer des informations dans de gros fichiers
parsing
...recherche de données dans un fichier
regex = motif ou pattern
ˆ Début de chaîne de caractères ou de ligne.
Exemple : la regex ˆATG est retrouvée dans la chaîne de caractères ATGCGT mais pas dans la chaîne CCATGTT.
$ Fin de chaîne de caractères ou de ligne.
Exemple : la regex ATG$ est retrouvée dans la chaîne de caractères TGCATG mais pas dans la chaîne CCATGTT.
. N’importe quel caractère (mais un caractère quand même).
Exemple : la regex A.G est retrouvée dans ATG, AtG, A4G, mais aussi dans A-G ou dans A G.
[ABC] Le caractère A ou B ou C (un seul caractère).
Exemple : la regex T[ABC]G est retrouvée dans TAG, TBG ou TCG, mais pas à TG.
[A-Z] N’importe quelle lettre majuscule.
Exemple : la regex C[A-Z]T est retrouvée dans CAT, CBT, CCT. . .
[a-z] N’importe quelle lettre minuscule.
[g-s] N’importe quelle lettre minuscule de g à s.
[0-9] N’importe quel chiffre.
[A-Za-z0-9] N’importe quel caractère alphanumérique.
[ˆAB] N’importe quel caractère sauf A et B.
Exemple : la regex CG[ˆAB]T est retrouvée dans CG9T, CGCT. . . mais pas dans CGAT ni dans CGBT.
\ Caractère d’échappement (pour protéger certains caractères).
Exemple : la regex \+ désigne le caractère + littéral. La regex A\.G est retrouvée dans A.G et non pas dans A suivi de n’importe quel caractère, suivi de G.
* 0 à n fois le caractère précédent ou l’expression entre parenthèses précédente.
Exemple : la regex A(CG)*T est retrouvée dans AT, ACGT, ACGCGT. . .
+ 1 à n fois le caractère précédent ou l’expression entre parenthèses précédente.
Exemple : la regex A(CG)+T est retrouvée dans ACGT, ACGCGT. . . mais pas dans AT.
? 0 à 1 fois le caractère précédent ou l’expression entre parenthèses précédente.
Exemple : la regex A(CG)?T est retrouvée dans AT ou ACGT.
{n} n fois le caractère précédent ou l’expression entre parenthèses précédente.
Exemple : la regex A(CG){2}T est retrouvée dans ACGCGT mais pas dans ACGT, ACGCGCGT ou ACGCG.
{n,m} n à m fois le caractère précédent ou l’expression entre parenthèses précédente.
Exemple : la regex A(C){2,4}T est retrouvée dans ACCT, ACCCT et ACCCCT mais pas dans ACT, ACCCCCT ou ACCC.
{n,} Au moins n fois le caractère précédent ou l’expression entre parenthèses précédente.
Exemple : la regex A(C){2,}T est retrouvée dans ACCT, ACCCT et ACCCCT mais pas à ACT ou ACCC.
{,m} Au plus m fois le caractère précédent ou l’expression entre parenthèses précédente.
Exemple : la regex A(C){,2}T est retrouvée dans AT, ACT et ACCT mais pas dans ACCCT ou ACC.
(CG|TT) Les chaînes de caractères CG ou TT.
Exemple : la regex A(CG|TT)C est retrouvée dans ACGC ou ATTC.
\d remplace n’importe quel chiffre (d signifie digit), équivalent à [0-9].
\w remplace n’importe quel caractère alphanumérique et le caractère souligné (underscore) (w signifie word character), équivalent à [0-9A-Za-z_].
\s remplace n’importe quel « espace blanc » (whitespace) (s signifie space), équivalent à [\t\n\r\f].
Nom de variables
credit image : enib
import re
animaux = "giraphe tigre singe"
re.search("tigre", animaux)
if re.search("tigre", animaux):
print("OK") # affiche OK
search(motif, chaine)
renvoie un objet du type SRE_Match considéré comme True dans un test.
import re
animaux = "girafe tigre singe"
re.match("tigre", animaux)
if re.match("tigre", animaux):
print("OK")
else:
print("NO") # affiche NO
re.match("girafe", animaux)
if re.match("girafe", animaux):
print("OK") # affiche OK
La fonction match() fonctionne comme search() sauf qu'elle renvoie un objet SRE_Match seulement si la regex correspond au début de la chaîne de caractères.
import re
animaux = "girafe tigre singe"
re.fullmatch("tigre", animaux)
if re.fullmatch("tigre", animaux):
print("OK")
else:
print("NO") # affiche NO
re.fullmatch("girafe tigre singe", animaux)
if re.fullmatch("girafe tigre singe", animaux):
print("OK") # affiche OK
La fonction fullmatch() renvoie un objet SRE_Match si et seulement si la regex correspond exactement à la chaîne de caractères.
import re
...
EN CONSTRUCTION
compile une regex et renvoie un objet de type SRE_Pattern utilisable avec la méthode search()
By snt