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
jusque là j'ai pas de soucis.
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
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) :
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
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 ...
Si j'utilise cette notation
Code : Sélectionner tout - Visualiser dans une fenêtre à part modele="\nPTH\s.+(\n.+)*"
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)
Code : Sélectionner tout - Visualiser dans une fenêtre à part modele="\nPTH\s.+(\n.+)*\nEND"
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
Partager