Bonjour à tous,
Je recherche une regex qui me permettrait de parser des entetes de fichiers.
Voici l'entete du fichier :
Je voudrais récupérer par une regex, la partie "But de la procédure", cad :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 /* =================================================================================*/ /* Date de création : 09/01/2013 */ /* Rédacteur : Jean Dupont */ /* But de la procédure : Ceci est un exemple de fichier qui permet de */ /* : stocker des calculs mathématiques. */ /* Ces calculs proviennent des serveurs du groupe */ /* : C1-03 qui est = au groupe C2-02 . */ /* : Si ces calculs sont = à 0 alors ne pas en tenir */ /* : compte. */ /* =================================================================================*/ /* Paramètre reçu 1 : */ /* ---------------------------------------------------------------------------------*/ /* Paramètre retourné 1 : */ /* =================================================================================*/ /* Date de modification : */ /* Rédacteur : */ /* But modification : */ /* =================================================================================*/
Cette partie peut se terminer soit par une ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Ceci est un exemple de fichier qui permet de */ /* : stocker des calculs mathématiques. */ /* Ces calculs proviennent des serveurs du groupe */ /* : C1-03 qui est = au groupe C2-02 . */ /* : Si ces calculs sont = à 0 alors ne pas en tenir */ /* : compte. */
/* ============================================*/
soit par une ligne :
/*----------------------------------------------------------------------*/
(le nombre de '=' ou de '-' est indifférent mais toujours > 2)
Il est important de tester la présence des '/*' et des '*/'.
Et le nombre de lignes récupérées est variable.
J'ai fait une regex, mais elle est compliquée et je n'obtiens pas ce que je veux :
Merci beaucoup d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2'\/\*\s*(?i)but\s*(?:de)*\s*(?:la)*\s*proc[e|é|è|ë|ê]dure\s*\:\s*(.*\s*\*\/(\r*\n*\/\*\s*\:*\s*[^\=]{2,}[^\=\-]{2,}\s*\*\/))(?!\/\*\s*\={2,}\s*\-{2,}\s*\*\/)'
Eric.
Partager