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:Voilà ensuite la regexp que j'exécute
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. Celle-ci comme on s'en doute "matche" toute mes données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part (?s)(?:(DEB.*)(?:\r\n){2})
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 regexpqui ne fonctionne malheureusement pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part (?s)(?:(DEB.*)(?:\r\n){2})+?
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.
Partager