Bonjour,

je récupère un code HTML dans mon application et je dois modifier certaines balises. Mon soucis est que je n'arrive pas à trouver les bonnes expressions régulières et que je ne sais pas comment faire pour modifier ces balises.

Les liens hypertextes

Je reçoit les liens sous la forme suivantes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<a href="mapage.jsp;jsessionid=xxx?param=value" >qqch</a>
et je dois effectuer la transaformation suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<a href="#" onclick="maFonction('mapage.jsp', 'mesparamètres')" />qqch</a>
Voici mon expression régulière :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Pattern p = Pattern.compile("<a .*(href=\"(.*\\.jsp)([^\"]*)\").*>");
Matcher m = p.matcher(psFluxHTML);
boolean ok = m.matches();
if(ok) {			
	//--- pour chaque groupe			
	for(int i=0; i<=m.groupCount(); i++) {  			
		System.out.println("Liens - groupe " + i + " : " + m.group(i));
	}
}
Les images

Je reçoit les images sous la forme suivantes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<img src="/xxx/xxx/monimage.ext" >
et je dois effectuer la transaformation suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<img src="autrerepertoire/monimage.ext" >
Et voici mon expression régulière :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Pattern p2 = Pattern.compile("<img.*src=\"/.*/(.*)\".*>");
Matcher m2 = p2.matcher(psFluxHTML);
boolean ok2 = m.matches();
if(ok2) {			
	//--- pour chaque groupe			
	for(int i=0; i<=m2.groupCount(); i++) {  			
		System.out.println("Image - groupe " + i + " : " + m2.group(i));
	 }
}
J'ai utilisé et testé ces 2 expressiosn dans le logiciel Kodos mais lorsque je les exécute dans mon code JAVA mes expressions ne semblent pas être correctes car aucun résultat n'est retourné.

Avez-vous une idée concernant ce problème ?

Savez-vous comment effectuer les changements dans les balises lorsque les expressions sont bonnes ?

Merci d'avance,

Erwan