Bonjour,

Je suis confronté à un problème lorsque j'utilise les expressions régulières.

Voici ce que j'essaye de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
// Voici mon pattern
Pattern pattern = Pattern.compile("^(.*) was uplo\\*ded to album (.*) successfully");
// Voici la chaîne de caractères que je souhaite faire matcher avec mon pattern
Matcher matcher = pattern.matcher(Pattern.quote("TEST_MEDIA was uplo*ded to album TEST_ALBUM successfully"));
matcher.find();
// ça me retourne \QTEST_MEDIA
System.out.println(matcher.group(1));
Je comprends très bien que j'ai un \Q devant ma chaîne à cause de la méthode Pattern.quote(). Cependant, j'ai besoin d'utiliser Pattern.quote() car la chaîne que je souhaite faire matcher peut contenir des caractères à échapper comme le caractère étoile dans mon exemple.

Mon souci est qu'au final je souhaiterais avoir en résultat sur "TEST_MEDIA" et non "\QTEST_MEDIA".

Y a-t-il un moyen simple de remplacer tous les caractères insérés par Pattern.quote() ?

Merci d'avance pour votre aide.