Bonjour,

J'ai un petit soucis sur l'écriture d'une Regexp multiligne.

Je voudrais récupérer dans une chaine des blocks de données respectant un certain format, sachant que ces blocks sont multilignes.

Voilà mon format d'entrée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
DEB-aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbb
ccccccccccccccccccccccc
 
DEB-aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbb
ccccccccccccccccccccccc
 
DEB-aaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbb
ccccccccccccccccccccccc
Voilà ensuite la regexp que j'exécute
Code : Sélectionner tout - Visualiser dans une fenêtre à part
(?s)(?:(DEB.*)(?:\r\n){2})
. Celle-ci comme on s'en doute "matche" toute mes données.

Ce que je voudrais c'est récupérer en block ; un block qui commence par DEB- jusqu'à la prochaine ligne vide. Je me suis donc dit qu'il fallait que ma regexp s'arrète dès que possible, j'ai donc tenté d'utiliser un quantificateur réticent (reluctent) pour que la regexp s'arrète dès qu'un match est trouvé, d'où la regexp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
(?s)(?:(DEB.*)(?:\r\n){2})+?
qui ne fonctionne malheureusement pas.

J'ai beau avoir essayé de modifier ma regexp dans tous les sens, j'avoue ne pas y arriver. Je ne sais pas si celà vient de l'utilisation du DotAll (?s) ou pas mais je crois que j'ai besoin d'un coup de main.

Merci d'avance.