17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Principaux modules, partie 3<br />

CHAPITRE 10<br />

end([group]) : renvoie l’indice du dernier caractère intercepté dans la chaîne. Si<br />

group est fourni, c’est un entier ou un nom qui identifie le groupe dans lequel<br />

chercher. end() recherche dans toute la séquence par défaut.<br />

pos : renvoie le paramètre pos fourni à search() ou match(). 0 par défaut.<br />

endpos : renvoie le paramètre endpos fourni à search() ou match(). Indice du<br />

dernier caractère par défaut.<br />

expand(template) : équivalente à sub, où template est la chaîne de substitution.<br />

lastgroup : renvoie le nom du dernier groupe intercepté, ou None si inexistant ou<br />

non nommé.<br />

lastindex : renvoie l’indice du dernier groupe intercepté, ou None si inexistant.<br />

re : renvoie l’objet SRE_Pattern qui a été utilisé.<br />

string : renvoie la chaîne qui a été recherchée.<br />

span([group]) : renvoie le tuple correspondant à (self.start(group),<br />

self.end(group)).<br />

Les backreferences<br />

Pour toutes les fonctions ou méthodes de substitution, il est possible d’insérer dans la<br />

chaîne de substitution les valeurs interceptées par des groupes. Chaque séquence correspondant<br />

à un groupe peut être insérée par le biais de marqueurs appelés backreferences.<br />

Les backreferences ont trois écritures possibles :<br />

\i : où i est l’indice du groupe, l’indice du premier groupe étant 1.<br />

\g : où i est l’indice du groupe.<br />

\g : où name est le nom du groupe.<br />

Backreferences<br />

>>> import re<br />

>>> motif = re.compile('(Mr|Mme|Mlle)\s([A-Za-z]+)\s([A-Za-z]+)')<br />

>>> print(motif.sub(r'Nom: \3, Prénom: \2', 'Mr John Doe'))<br />

Nom: Doe, Prénom: John<br />

>>> print(motif.sub(r'Mon nom est \g, \g \g', 'Mr Jean Bon'))<br />

Mon nom est Bon, Jean Bon<br />

>>> motif = re.compile('(Mr|Mme|Mlle)\s(?P[A-Zaz]+)\s(?P[A-Za-z]+)')<br />

>>> print(motif.sub(r'\g, de la lignée des \g',<br />

... 'Mr Pif LeChien'))<br />

Pif, de la lignée des LeChien<br />

327

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!