ReplaceAll : réutiliser ce qu'on a matché.

ReplaceAll : réutiliser ce qu'on a matché. - Java - Programmation

Marsh Posté le 30-08-2007 à 19:46:31    

Bonjour,
Je voudrais remplacer quelque chose de la forme :
 

Code :
  1. <TAG>du texte au pif</TAG> par <span class=tag>du texte au pif</span>


 
Imaginons dans un premier temps que je connaisse la liste des tags possibles, je fais donc un :
 

Code :
  1. chaine.replaceAll("<TAG>(.*)</TAG>","<span class=tag>XXX</span>" );


 
autant de fois que j'ai de tag
 
1ère question : que mettre à la place des XXX pour qu'il récupere ce qu'il a matché dans mon expression régulière ?
 
Deuxième cas de figure, imaginons maintenant que je ne connaisse pas la liste des tags possibles, comment faire en sorte de matcher dans mon expression réguliere la même chose que j'ai déjà :
 

Code :
  1. chaine.replaceAll("<(.*?)>(.*)</YYY>"...


 
2ème question : que mettre à la place des YYY pour qu'il matche deux fois la même chose (sachant bien sur que je peux avoir des tags imbriqués)
 
Que vous ayez la réponse à ma première ou à ma deuxième question, je vous remercie pour votre aide,
 
Axel
 

Reply

Marsh Posté le 30-08-2007 à 19:46:31   

Reply

Marsh Posté le 30-08-2007 à 20:05:47    

J'ai trouvé la solution à ma première question, il faut utiliser $1
 
Axel

Reply

Marsh Posté le 31-08-2007 à 10:40:19    

Il faut utiliser une "Back reference"
 
http://java.sun.com/j2se/1.4.2/doc [...] ml#backref
 
Donc, ici, il faut remplacer YYY par \1

Reply

Marsh Posté le 04-09-2007 à 16:46:44    

merci beaucoup

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed