Jul 03, 2024

Wiki

Python

Aide

edit SideBar

Search

Expressions Rationnelles Detaillees


Les expressions rationnelles détaillés

Les expressions rationnelles peuvent vite devenir compliquées, difficiles à lire ou à déboguer.

Python permet de détailler ces expressions régulières (verbose regular expressions), en passant l'option re.VERBOSE à search. La reconnaissance du motif sera alors telle que :

  • Les espaces, tabulations et retours chariot seront ignorés, à moins de les «échapper» (les précéder de «\»).
  • Les commentaires sont ignorés.

Exemple d'utilisation

On reprend le motif des chiffres romains, que l'on commente :

  >>> motif = """
  ...    ^                   # Début de la chaîne
  ...    M{0,4}              # Les milliers : de 0 à 4 M
  ...    (CM|CD|D?C{0,3})    # Les centaines : 900 (CM), 400 (CD),
  ...                        #            0-300 (0 à 3 C),
  ...                        #            ou 500-800 (D, suivi de 0 à 3 C)
  ...    (XC|XL|L?X{0,3})    # dizaines - 90 (XC), 40 (XL), 0-30 (0 à 3 X),
  ...                        #        ou 50-80 (L, suivi de 0 à 3 X)
  ...    (IX|IV|V?I{0,3})    # unités - 9 (IX), 4 (IV), 0-3 (0 à 3 I),
  ...                        #        ou 5-8 (V, suivi de 0 à 3 I)
  ...    $                   # fin de la chaîne
  ... """

On peut alors passer ce motif détaillé à search, en incluant l'option re.VERBOSE :

  >>> re.search(motif, 'M', re.VERBOSE)
    <_sre.SRE_Match object at 0x008EEB48>
  >>> re.search(motif, 'MCMLXXXIX', re.VERBOSE)
    <_sre.SRE_Match object at 0x008EEB48>
  >>> re.search(motif, 'MMMMDCCCLXXXVIII', re.VERBOSE)
    <_sre.SRE_Match object at 0x008EEB48>
  >>> re.search(motif, 'M')
  >>>

Dans la dernière utilisation de search, M n'a pas été reconnu, vu que le drapeau re.VERBOSE a été omis.

Page Actions

Recent Changes

Group & Page

Back Links