Retrouver des références de norme dans un texte
Bonjour,
Je cherche à récupérer des références de normes dans un texte afin de les encadrer de balise HTML <a>, je tente de le faire avec une regex.
Les normes sont de la forme "NF EN xxx", où xxx est le numéro de la norme.
Voici mon code soumis à un exemple:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| String txt = "blablabla NF EN 127 blablabla NF EN 148 blablabla";
Pattern patternNormes = Pattern.compile(".*((NF EN \\d*)).*");
Matcher matcherNormes = patternNormes.matcher(txt);
if(matcherNormes.find()){
matcherNormes.matches();
for(int i=1;i<matcherNormes.groupCount();i++){
System.out.println(matcherNormes.group(i));
txt = txt.replaceAll(matcherNormes.group(i),"<a>"+matcherNormes.group(i)+"</a>");
}
System.out.println(txt);
} |
A priori la regex que j'utilise n'est pas suffisante puisqu'elle s'arrête à la première occurrence (en partant de la fin) correspondante à mon motif. Car au final seule la seconde norme de l'exemple se retrouve encadrée par les balises HTML <a> (sortie de console) :
Code:
1 2
| NF EN 148
blablabla NF EN 127 blablabla <a>NF EN 148</a> blablabla |
Y aurait-il un pro des regex qui pourrait me filer un tuyaux pour récupérer les autres occurrences (NF EN 127 dans mon exemple) ?
Par avance, merci pour votre aide :)