В частности, у меня есть массив строк с именем val, и я хочу заменить все экземпляры "%{n}%"
во входных данных на val[n]
. В более общем смысле я хочу, чтобы значение замены было функцией значения соответствия. Это на С++, поэтому я выбрал Boost, но если другая распространенная библиотека регулярных выражений соответствует моим потребностям, лучше дайте мне знать.
Я нашел несколько решений .NET (C#, VB.NET), но не знаю, смогу ли я использовать здесь тот же подход (или, если смогу, то как это сделать).
Я знаю, что есть уродливое решение: иметь выражение формы "(%{0}%)|(%{1}%)..."
, а затем использовать шаблон замены, например "(1?" + val[0] + ")(2?" + val[1] ... + ")"
.
Но я хотел бы знать, можно ли сделать то, что я пытаюсь сделать, более элегантно.
Спасибо!