RE2 — Замена именованных групп или получение индексов именованных групп

#typescript #re2

Вопрос:

В проекте машинописи, использующем RE2, я надеюсь либо заменить несколько именованных групп напрямую, либо, по крайней мере, получить первый и последний индексы совпадений для нескольких именованных групп, чтобы я мог выполнить замену самостоятельно.

Представьте, что есть такая строка group: 'ant', name: 'ant', version: '1.4.1' . Я хочу заменить там три строковых значения, но я не могу предположить, что порядок гарантирован, и я не могу предположить, что совпадение для одного из них не будет задано в строке ровно один раз. Поэтому я бы создал регулярное выражение с именованной группой захвата для группы, имени и номера версии, а затем заменил текущие значения другими.

Я не слишком хорошо знаком с RE2, поэтому я не знаю, существует replace ли метод с обратным вызовом или что-то в этом роде, где имя группы является аргументом, с помощью которого я могу решить, какое значение заменить. Если нет, то если бы я, по крайней мере, знал для каждой именованной группы, где они начинаются и заканчиваются в исходной строке, тогда я мог бы придумать свой собственный алгоритм, чтобы нарезать, вставить и придумать новую строку таким образом.