Bonjour à tous,

Je recherche une regex qui me permettrait de parser des entetes de fichiers.

Voici l'entete du fichier :

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            :                                                 */
/* =================================================================================*/
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
 
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.		*/
Cette partie peut se terminer soit par une ligne :

/* ============================================*/

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 :

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*\*\/)'
Merci beaucoup d'avance pour votre aide.

Eric.