[REGEXP] Problème avec DotAll
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:
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)(?:(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)(?:(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.