⊗pyPmRESF 73 of 129 menu

Drapeaux pour les chaînes d'expressions régulières en Python

Pour définir les drapeaux comme l'un des paramètres facultatifs pour les méthodes travaillant avec les expressions régulières, la syntaxe suivante est utilisée :

flags=re.nom_du_drapeau

Principaux drapeaux pour travailler avec les expressions régulières

Drapeau Fonction
re.IGNORECASE Ignorer la casse des caractères.
re.DOTALL Le point correspond à n'importe quel caractère, y compris le saut de ligne.
re.I Rend la recherche insensible à la casse.
re.L Recherche les mots en fonction de la langue actuelle. Cette interprétation affecte le groupe alphabétique (\w et \W), ainsi que le comportement de la frontière de mot (\b et \B).
re.M Le caractère $ effectue la recherche à la fin de n'importe quelle ligne de texte (pas seulement à la fin du texte) et le caractère ^ effectue la recherche au début de n'importe quelle ligne de texte (pas seulement au début du texte).
re.S Modifie la signification du point (.) pour qu'il corresponde à n'importe quel caractère, y compris une nouvelle ligne.
re.U Interprète les lettres selon le jeu de caractères Unicode. Ce drapeau influence le comportement de \w, \W, \b, \B. En Python 3+, ce drapeau est défini par défaut.
re.X Permet une syntaxe d'expression régulière multiligne. Il ignore les espaces à l'intérieur du modèle (sauf les espaces à l'intérieur d'un ensemble [] ou lorsqu'ils sont échappés par un antislash) et traite le '#' non échappé comme un commentaire.

Exemple

Avec le drapeau re.IGNORECASE, on peut ignorer la casse des caractères. Regardons comment cela se fait. Dans cet exemple, l'expression régulière ne trouvera que les lettres minuscules :

txt = 'aaa bbb CCC DDD' res = re.sub('[a-z]+', '!', txt) print(res)

Résultat de l'exécution du code :

'! ! CCC DDD'

Exemple

Maintenant, ajoutons dans le quatrième paramètre de la méthode le drapeau re.IGNORECASE et l'expression régulière commencera à rechercher les caractères dans toutes les casses :

txt = 'aaa AAA bbb BBB' res = re.sub('[a-z]+', '!', txt, flags=re.IGNORECASE) print(res)

Résultat de l'exécution du code :

'! ! ! !'

Exemple

Trouvons avec l'expression régulière tous les sauts de ligne :

txt = '''aaa bbb''' res = re.sub('\n', '!', txt) print(res)

Résultat du code exécuté :

'aaa!bbb'

Exemple

Mais, si nous devons remplacer absolument tous les caractères, en utilisant le point dans l'expression régulière, les sauts de ligne ne seront pas capturés :

txt = '''aaa bbb''' res = re.sub('.', '!', txt) print(res)

Résultat du code exécuté :

'!!! !!!'

Exemple

Pour corriger cette erreur, il faut appliquer le drapeau re.DOTALL :

res = re.sub('.', '!', txt, flags=re.DOTALL) print(res)

Résultat du code exécuté :

'!!!!!!!'

Exemple

Il est possible de passer plusieurs drapeaux dans le paramètre, en plaçant l'opérateur + entre eux. Commençons par remplacer la lettre 'a' à la fin de la ligne :

txt = ''' aaa AAA aaa''' res = re.sub('aaa , '!', txt) print(res)

Résultat du code exécuté :

''' aaa AAA ! '''

Exemple

Maintenant, mettons le drapeau re.M :

res = re.sub('aaa , '!', txt, flags=re.M) print(res)

Résultat du code exécuté :

''' ! AAA ! '''

Exemple

Appliquons maintenant également le drapeau pour ignorer la casse :

res = re.sub('aaa , '!', txt, flags=re.M+re.IGNORECASE) print(res)

Résultat du code exécuté :

''' ! ! ! '''
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser