Bonjour,
J'ai un petit soucis avec les regex et plus particulièrement les méthodes compile,matches et find :

voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
Pattern p = Pattern.compile(".*\\{ATTRIBUTS\\}(.*)\\{/ATTRIBUTS\\}.*",Pattern.MULTILINE|Pattern.DOTALL);
				Matcher m = p.matcher(retour);
while(m.find()){
					System.out.println(m.groupCount());
 
}
et voici le code inclus dans la variable "retour" :

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
/******************/ 
/** Classe :{CLASSE} **/ 
/** Auteur : {AUTEUR}({EMAIL}) **/
/** Langage : {LANGAGE} **/ 
/** Création : {DATE} **/
/** Description : {DESCRIPTION} **/
/******************/
 
class {CLASSE}
{
 
{ATTRIBUTS}
	_ATTRIBUTACCES_ _ATTRIBUTPRETYPE_ _ATTRIBUTNOM_;{/ATTRIBUTS}
 
/**
* Constructeur de la classe {CLASSE}
* @author {AUTEUR}
* @version 1
* @param aucun
* @return rien
*/
{ACCESSEURS}
function __construct(){
	echo 'code execute dans mon constructeur';
}
{/ACCESSEURS}
 
function principale(){
{ATTRIBUTS}
	this._ATTRIBUTNOM_ = null ;{/ATTRIBUTS}
}
 
{ATTRIBUTS}
	_ATTRIBUTNOM_ {/ATTRIBUTS}
 
}
?>

Dans tous les cas, le match ne me récupère que la dernière expression a savoir :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
{ATTRIBUTS}
	_ATTRIBUTNOM_ {/ATTRIBUTS}
et le groupCount est toujours a 1

j'ai également essayé de mettre while(m.matches()){ et if(m.matches()){ mais rien n'y fait...

Quelqu'un a t'il une idée ? Les regex sont puissantes mais encore obscures pour mon cerveau de néophyte.

Amicalement.

Idle