Bonjour,
J'ai une chaîne de caractère comportant certains signes de ponctuation et je voudrai la reformater de la façon suivante : mots espaces Signe de ponctuation espaces mots -> mots Signe espace mots

Bonjour , comment ça va ? Bien ; et vous?
->
Bonjour, comment ça va? Bien; et vous?

Le problème est que mon code me renvoie
Bonjour, comment ça va, Bien, et vous?
Toutes les occurrences de mon masque sont remplacées par le premier signe trouvé : ici la virgule.

Si vous voyez où est mon erreur…

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
p = Pattern.compile("([ ])+([.!?;,])([ ])+");
m = p.matcher(texte);
if(m.find()){texte = m.replaceAll(m.group(2)+" ");}

Merci