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:
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
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) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 NF EN 148 blablabla NF EN 127 blablabla <a>NF EN 148</a> blablabla
Par avance, merci pour votre aide![]()
Partager