Я полагаю, что вопрос: Как я могу использовать кровавый обратный вызов в регулярном выражении Java, чтобы я мог сопоставить в общей форме [^\"].*(x).*[^\"]
и получить соответствующее значение замены?
И ответ - не очень легко, используя только стандартный API.(Эта очень полезная функция - , просто отсутствует .)
Однако можно выполнить регулярное выражение и затем использовать некрасивые манипуляции со строками для возвращаемых индексов из объекта Match
.Метод-обертка для всего этого и включения многократно используемого интерфейса похож на 15 строк.
Фактический пример можно найти здесь: Java-эквивалент PHP preg_replace_callback
(И обратите внимание на то, что другие говорили о том, что Регулярные выражения не способны обрабатывать полную грамматику паскаля.)