Bonjour

J'ai un problème avec les expressions régulières

Je dois analyser de nombreux fichiers et y retirer des informations. Je passe le fichier (format Txt d'origine) dans une variable, puis j'y passe mes différentes recherches

J'ai des cas simples où je récupère une ligne (et une seule) qui commence toujours par certains caractères

Code : Sélectionner tout - Visualiser dans une fenêtre à part
modele="\nQTX\s.*"  ' retourne toute ligne commencant par QTX, suivit d'un espace puis le reste de la ligne
jusque là j'ai pas de soucis.

Par contre j'ai 2 cas où je dois récupérer une ligne commencant par certains caractères, mais aussi les suivantes jusqu'a rencontrer un autre ensemble de caractères et m'y arréter.

Un exemple du contenu du fichier (bidon, c'est pour illustrer) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
...
QTX MACHINE358
 
PTH 1.5986
ARG818,ARG750
ARG3, TSS8
13:15:56
END
 
NVX 0.236598,1235.2,456.3
8.03,55.963,0.8896
END
...
Le shéma suivant me retourne toute les infos, mais naturellement jusqu'à la fin du fichier texte.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
modele="\nPTH\s.+(\n.+)*"
Si j'utilise cette notation

Code : Sélectionner tout - Visualiser dans une fenêtre à part
modele="\nPTH\s.+(\n.+)*\nEND"
Celà va marcher UNIQUEMENT si il n'y a qu'un seul END dans le fichier, mais il arrive qu'il y en ai plusieurs (comme dans l'exemple plus haut), et dans ce cas il s'arrète au dernier END (ce qui me fausse tout)

Ma question est : Comment lui dire de s'arréter dès qu'il rencontre une ligne commençant par "\nEND". En gros s'arréter à la première occurence trouvé pour ce mot clé

Merci d'avance