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