Jul 03, 2024

Wiki

Python

Aide

edit SideBar

Search

Autres Metacaracteres


On présente ici de nouveaux méta-caractères.

Certains correspondent à des affirmations : \b par exemple, signifie le bord d'un mot. Si l'on est effectivement au bord d'un mot, aucun caractère n'est absorbé, et l'analyse poursuit son cours. Sinon, il y a échec.

|
Le « ou ». Si A et B sont deux expressions rationnelles, l'expression A|B correspondra à toute chaîne vérifiant soit A, soit B.
Ce méta-caractères a une faible priorité. Par exemple, toto|tata signifie « Soit toto, soit tata », et non pas «tot, suivi de o ou t, suivi de ata ».
^
Reconnaît ce qui suit s'il est en début de chaîne.
Si le drapeau re.MULTILINE a été passé, chaîne est remplacé par ligne dans ce qui précède.
    >>> print re.search('^From', 'From Here to Eternity')
    <re.MatchObject instance at 80c1520>
    >>> print re.search('^From', 'Reciting From Memory')
    None
\$
Comme ci-dessus, mais pour la fin (d'une chaîne/d'une ligne).
    >>> print re.search('}$', '{block}')
    <re.MatchObject instance at 80adfa8>
    >>> print re.search('}$', '{block} ')
    None
    >>> print re.search('}$', '{block}\n')
    <re.MatchObject instance at 80adfa8>
\A
Ne réalise de correspondance qu'en début de chaîne.
Ce méta-caractère \A est identique à ^, à moins que le drapeau re.MULTILINE soit passé. Auquel cas,
  • \A est pour le début de la chaîne,
  • ^ pour le début de chaque ligne.
\Z
Ne réalise de correspondance qu'en fin de chaîne.
Même remarque que ci-dessus, entre \Z et \$.
\b
Limite d'un mot, signalé par un espace, un caractère non-alphanumérique...
Par exemple, si on ne souhaite relever class que s'il est un mot (et non une partie d'un plus grand mot) :
    >>> p = re.compile(r'\bclass\b')
    >>> print p.search('no class at all')
    <re.MatchObject instance at 80c8f28>
    >>> print p.search('the declassified algorithm')
    None
    >>> print p.search('one subclass is')
    None
Bien faire attention ici à utiliser des chaînes brutes, vu que \b correspond aussi au caractère backspace...
    >>> p = re.compile('\bclass\b')
    >>> print p.search('no class at all')
    None
    >>> print p.search('\b' + 'class' + '\b')  
    <re.MatchObject instance at 80c3ee0>
\B
Le contraire de \b.

Page Actions

Recent Changes

Group & Page

Back Links