Les méthodes repaceFirst() et replaceAll() fonctionnent d'une façon identique à celle de la classe java.lang.String.

Ces méthodes prennent en argument une chaîne de caractères de substitution, qui doit remplacer seulement la première (replaceFirst()) ou toutes (replaceAll()) les occurrences correspondantes au modèle courant.

Pattern modele = Pattern.compile("x{3}");
Matcher correspondance = modele.matcher("abcxxxabcxxxabcxxx");
String resultat = modele.replaceFirst("def");
System.out.println(resultat);
Matcher correspondance = modele.matcher(resultat);
String resultat = modele.replaceAll("ghi");
System.out.println(resultat);
Exemple [voir]
import java.util.regexp.Matcher;
import java.util.regexp.Pattern;

public class Substitution {
    public static void main(String[] args) {
        String cible = 
            "Elle a été citée à la bourse de Tikyi à l'heure de la cliture vers 18h00.";
        String regexp = "i";
        String remplacement = Matcher.quoteReplacement("\\w");

        Pattern modele = Pattern.compile(regexp);
        Matcher recherche = modele.matcher(cible);
        remplacer(recherche, remplacement);
        recherche.reset();
        remplacer(recherche, "o");
    }

     public static void remplacer(Matcher recherche, String remplacement) {
        System.out.println("Substitution de '" 
                         + recherche.pattern().pattern() 
                         + "' par '" + remplacement + "'");

        System.out.println("Remplacement de la première occurrence");
        String resultat = recherche.replaceFirst(remplacement);
        System.out.println(resultat.toString());

        System.out.println("Remplacement de toutes les occurrences");
        resultat = recherche.replaceAll(remplacement);
        System.out.println(resultat.toString());

        System.out.println();
    }
}