Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Expressions régulières
  3. Les expressions régulières en Python
Extrait - Expressions régulières Syntaxe et mise en œuvre (avec exercices et corrigés) (2e édition)
Extraits du livre
Expressions régulières Syntaxe et mise en œuvre (avec exercices et corrigés) (2e édition) Revenir à la page d'achat du livre

Les expressions régulières en Python

Généralités 

Python est un langage de programmation interprété. Il a été conçu par Guido van Rossum à la fin des années 1980 et a été disponible pour le public en février 1991.

C’est un langage structuré, orienté objet, à la syntaxe rigoureuse qui impose le format d’écriture et favorise l’homogénéité de style. L’indentation fait partie intégrante du langage, et l’oubli d’une tabulation devant une instruction peut généralement avoir de sérieuses conséquences.

De nombreuses bibliothèques renforcent la puissance de ce langage.

Python offre la possibilité de manipuler des expressions régulières grâce à un module qu’il faut importer dans le programme souhaitant effectuer ces manipulations. La syntaxe des expressions régulières de Python a été considérablement enrichie par rapport aux expressions régulières étendues classiques, et apporte des possibilités similaires à lex.

Nous ne présenterons dans ce chapitre qu’un aperçu de ce que permettent les expressions régulières en Python. Pour une présentation exhaustive des possibilités du langage et de ses expressions régulières, veuillez vous référer...

Le module de gestion des expressions régulières 

1. Utilisation 

Pour utiliser des expressions régulières dans un programme Python, il est nécessaire d’importer le module re.

Syntaxe

import re 

Exemple

#!/usr/bin/python 
 
import os 
import re 

Les expressions peuvent ensuite être utilisées directement avec des fonctions de traitement comme par exemple :

  • re.match()

  • re.search()

  • re.sub()

  • etc.

ou de préférence compilées avec la fonction re.compile() si elles doivent être utilisées plusieurs fois.

Exemple 1

#!/usr/bin/python  
 
import os  
import re  
 
argv      = os.sys.argv  
argc      = len(argv)  
prgm      = argv[0]  
 
def usage(prgm) :  
    print "Usage: %s regex string" % prgm  
 
if argc != 3 :  
    usage(prgm)  
    exit(1)  
 
expr      = argv[1]  
string    = argv[2]  
s         = re.search(expr, string, 0);  
 
if  s :    
    print "group()   : ", s.group() 

Ce script (search_direct.py) ne fait pas appel à la fonction re.compile() : il utilise directement l’expression dans un paramètre d’appel de la méthode re.search().

Exemple 2

#!/usr/bin/python  
 
import os  
import re  
 
argv      = os.sys.argv  
argc      = len(argv)  
prgm      = argv[0]  
 
def usage(prgm) :  
    print "Usage: %s regex string" % prgm  
 
if argc != 3 :  
    usage(prgm)  
    exit(1)  
 
expr      =...

Les expressions régulières 

1. Utilisation du caractère . 

Le caractère . désigne un caractère quelconque, à l’exception du saut de ligne (newline). Si le flagDOTALL a été spécifié, le caractère . pourra également correspondre à un saut de ligne.

2. Utilisation du caractère \ 

Le caractère antislash sert à supprimer la signification particulière d’un métacaractère, ou à définir un caractère spécial. Les caractères spéciaux définis à l’aide de l’antislash sont les suivants :

\A

correspond uniquement au début de la chaîne.

\b

correspond à la chaîne vide, en début ou fin de mot.

\B

correspond à la chaîne vide, uniquement si elle n’est ni en début, ni en fin de mot.

\d

correspond à un chiffre décimal, ou, si UNICODE est spécifié, correspond à ce qui est spécifié en tant que chiffre dans la base Unicode.

\D

correspond à tout sauf un chiffre décimal, ou, si UNICODE est spécifié, correspond à tout sauf ce qui est spécifié en tant que chiffre dans la base Unicode.

\s

correspond à un caractère espace, \t, \n, \r, \f, \v, et éventuellement les autres caractères correspondant à un espace définis dans la base Unicode si UNICODE est spécifié.

\S

correspond à tout sauf les caractères espace, \t, \n, \r, \f, \v, et éventuellement les autres caractères correspondant à un espace définis dans la base Unicode si UNICODE est spécifié.

\w

correspond à un caractère alphanumérique et au caractère souligné ; si LOCALE est défini, correspond à [0-9_] et à tous les caractères alphanumériques définis par la localisation courante ; si UNICODE est défini, correspond à [0-9_] et à tous les caractères alphanumériques définis dans la base Unicode.

\W

ne correspond ni à un caractère alphanumérique, ni au caractère souligné ; si LOCALE est défini, ne correspond ni à [0-9_] ni à tous les caractères...