Python regex multilignes

Les expressions régulières sont un outil particulièrement puissant pour manipuler des chaines. Seulement, par défaut elles s'utilisent sur une seule ligne.
Voici donc deux moyens de travailler en mode multi lignes. Dans ces exemples, nous travaillerons sur une chaine composée de plusieurs lignes.

Travailler sur la chaine entière

Vous connaissez surement les méta-caractère ^ et $ qui permettent de dire qu'on travaille du début de la ligne jusqu'à la fin. En spécifiant le flag re.MULTILINE, ces méta caractères vont borner la chaine entière et pas seulement la ligne.
La ligne suivante va par exemple permettre de supprimer toute la chaine (et donc toutes ses lignes) :

txt = re.sub('^.*$', '', txt, re.MULTILINE)

Travailler sur plusieurs lignes à l'intérieur d'une chaine

Lorsqu'on souhaite travailler à l'intérieur d'une chaine et pas sur cette chaine entière, on ne vas pas utiliser les méta caractères mais des classes de caractères comme le point (.) qui valide n'importe quel caractère. Ainsi, la ligne suivante va permettre de supprimer le contenu d'une chaine comprit entre deux délimiteurs :

txt = re.sub('debut_chaine.*fin_chaine', '', txt, re.DOTALL)

Les regex sont réellement puissantes et permettent beaucoup de choses. Mangez-en, c'est encore meilleur avec du Python !