Java Regex : omettre des lignes inutiles

[Fermé]
Signaler
-
Bonjour,

Voilà un moment que je galère avec une expression régulière.
Je souhaite analyser un fichier de façon à reconnaitre certaine lignes.

J'ai une ligne qui commence par PATTERN1 par exemple, ensuite autant de ligne que je veux avec ce que je veux dedans. Puis une ligne PATTERN2, rebelote puis PATTERN3.

Donc par exemple mon fichier :
######
blabla

PATTERN1 chaine1
PATTERN2 chaine2
PATTERN3 chaine3

PATTERN1 chaine4
bla bla
PATTERN2 chaine5
bla bla
PATTERN3 chaine6

blabla

PATTERN1 chaine7

PATTERN2 chaine8

PATTERN3 chaine9

blabla

PATTERN1 chaine7

blabla

PATTERN2 chaine8

blabla

PATTERN3 chaine9
#########

Il s'agit de quelques exemple.
Donc j'ai pensé a cette regex :
Je cherche la ligne PATTERN1 j'extrait chaine* puis je saute toutes les lignes qui ne contiennent pas PATTERN2 puis je prend la ligne PATTERN2 j'extrait chaine* puis je saute toutes les lignes qui ne contiennent pas PATTERN3 puis je prend la ligne PATTERN3 j'extrait chaine*

Ce qui m'a donné :

"PATTERN1(.*)\n(?:[^P][^A][^T][^T][^E][^R][^N][^2].*\n*)*PATTERN2(.*)\n(?:[^P][^A][^T][^T][^E][^R][^N][^3].*\n*)*PATTERN3(.*)\n"

Mais ça ne marche pas! =/

Je suis pas très expert des regex en java et je n'arrive pas à comprendre ce qui ne va pas...
Quelqu'un pourrait il m'aider?

Merci d'avance