Inversion des ensembles de caractères dans les regex
Avec le caret '^' au début
des crochets, on peut inverser
le souhaité. Si, par exemple, la commande [ab]
cherche la lettre 'a' ou 'b', alors
la commande [^ab] cherchera tous
les caractères, sauf 'a' et 'b'.
Exemple
Dans cet exemple, le modèle de recherche est
le suivant : lettre 'x', puis NON lettre
'a', non 'b' et non 'c',
puis lettre 'z':
txt = 'xaz xbz xcz xez'
res = re.sub('x[^abc]z', '!', txt)
print(res)
Résultat de l'exécution du code :
'xax xbx xcx !'
Exemple
Dans cet exemple, le modèle de recherche est
le suivant : lettre 'x', puis NON lettre minuscule
latine, puis lettre 'z':
txt = 'xaz xbz x1z xCz'
res = re.sub('x[^a-z]z', '!', txt)
print(res)
Résultat de l'exécution du code :
'xaz xbz ! !'
Problèmes pratiques
Écrivez une expression régulière qui trouvera les chaînes
selon le modèle : chiffre 1, puis caractère
non 'e' et non 'x', chiffre
2.
Écrivez une expression régulière qui trouvera les chaînes
selon le modèle : lettre 'x', puis NON
chiffre de 2 à 7, lettre
'z'.
Écrivez une expression régulière qui trouvera les chaînes
selon le modèle : lettre 'x', puis NON
lettre latine majuscule de 1 fois ou plus,
lettre 'z'.
Écrivez une expression régulière qui trouvera les chaînes
selon le modèle : lettre 'x', puis NON
lettre latine majuscule ou minuscule et
non chiffre de 1 à 5 de 1
fois ou plus, lettre 'z'.