Bonjour,

j'ai un petit souci d'utilisation des Pattern...

J'ai le texte:
Activation:[10/11/2008-18:54:32]-PartnerID:[001]<br>Deactivation:[10/11/2008-19:00:20]-PartnerID:[001]<br>
J'aimerais qu'il devient:
Activation:[10/11/2008-18:54:32]<br>Deactivation:[10/11/2008-19:00:20]<br>
La partie du texte "PartnerID:[001]" est variable (ex. "PartnerID:[xx]" ou "PartnerID:[xxx]"). De plus, le texte de base peut se répéter plusieurs fois.

J'ai voulu utiliser le Pattern:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
String Description = "Activation:[10/11/2008-18:54:32]-PartnerID:[001]<br>Deactivation:[10/11/2008-19:00:20]-PartnerID:[001]<br>";
 
Pattern pattern;
Matcher matcher;
 
pattern = Pattern.compile("-PartnerID:\p{Punct}*\p{Punct}");
matcher = pattern.matcher(Description);
 
while(matcher.find()) {
	System.out.println("Trouvé !");
}
Description = matcher.replaceAll("<br>");
J'ai essayé avec:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
pattern = Pattern.compile("-PartnerID:\p{Punct}*\p{Punct}");   //Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )
pattern = Pattern.compile("-PartnerID:\p{[}.*\p{]}");   //Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )
pattern = Pattern.compile("-PartnerID.*<br>");   //Coupe jusqu'à la fin, il ne trouve pas le pattern du milieu
pattern = Pattern.compile("-PartnerID*<br>");   //Ne trouve rien, le texte reste intacte
pattern = Pattern.compile("-PartnerID:\[.*\]");   //Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )
pattern = Pattern.compile("-PartnerID:....");   //ok, mais longueur fixe...
Mais aucune fonctionne!!

Est-ce que ça ne vas jamais fonctionner et je reprend la vieille boucle while?
Ou est-ce qu'il y a un détail qui m'échappe??

Merci d'avance pour toute réponse