Bonjour,
J'ai un petit soucis avec les regex et plus particulièrement les méthodes compile,matches et find :
voici mon code :
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 Pattern p = Pattern.compile(".*\\{ATTRIBUTS\\}(.*)\\{/ATTRIBUTS\\}.*",Pattern.MULTILINE|Pattern.DOTALL); Matcher m = p.matcher(retour); while(m.find()){ System.out.println(m.groupCount()); }
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 :
et le groupCount est toujours a 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 {ATTRIBUTS} _ATTRIBUTNOM_ {/ATTRIBUTS}
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
Partager