c1rd3c
Messages postés15Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention21 avril 2008
-
21 avril 2008 à 22:22
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 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?
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 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.