Remplacer string entre tags

c1rd3c Messages postés 15 Date d'inscription lundi 20 juin 2005 Statut Membre Dernière intervention 21 avril 2008 - 21 avril 2008 à 22:22
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 22 avril 2008 à 09:49
Bonjour,

Je souhaiterai remplacer les strings entre 2 tags html. Le tag de debut et fin peuvent etre presents plusieurs fois dans le string.

Par exemple:
test1testtest2testtes\nt3

J'ai utilise la methode replaceAll de la classe String en specifiant une expression reguliere.  Voici le code:
String s = "test1testtest2testtes\nt3";
s.replaceAll("(?s).*","***");

Le resultat retourne par la methode replaceAll est:
***

Je voudrais a la place retourner ***test***test*** et je ne vois pas comment faire en utilisant les expressions regulieres. Est ce que quelqu'un pourrait m'aider?

Merci beaucoup,
Cedric

1 réponse

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
22 avril 2008 à 09:49
Salut:

Avant toute autre chose, le chevauchement des balises n'est pas encouragé.

C'est logique qu'il retourne *** parcequ'il commence à faire le matching en faisant le parcours dans les deux sens (un compteur depuis le début et un autre depuis la fin), donc il voit le texte entre la première balise et la dernière balise fermante comme étant un matching donc il le remplace pour ***.

test1testtest2testtes\nt3

***

Comme tu utilises les groupement, serts toi de la méthode group(int n) de la classe Matcher pour accéder au contenu du groupement.
0