Zastąp podczas wyszukiwania wzoru

Próbuję przejść przez łańcuch i zastąpić wszystkie wystąpienia ciągu pasującego do wyrażenia regularnego. Z jakiegoś powodu, kiedy używamif wtedy zadziała i zastąpi tylko jedną instancję ciągu dopasowań regex. Kiedy zmieniamif dowhile potem robi dziwną wymianę na siebie i robi bałagan na pierwszym ciągu pasującym do wyrażenia regularnego, nawet nie dotykając innych ...

        pattern = Pattern.compile(regex);
        matcher = pattern.matcher(docToProcess);
        while (matcher.find()) {
            start = matcher.start();
            end = matcher.end();
            match = docToProcess.substring(start, end);
            stringBuilder.replace(start, end, createRef(match));
            docToProcess = stringBuilder.toString();
        }

questionAnswers(3)

yourAnswerToTheQuestion