Задать вопрос
savostin
@savostin
Еще один программист

[boost::xpressive] Многопроходная замена?

Подскажите плз кто в курсе, а то уже весь Google сломал.

Есть строка, в которой с помощью boost::xpressive заменяется одно на другое, но в результате получается такая же строка, которую нужно тоже заменить (ох как сказал!).

Пример:
sregex tmp = sregex::compile( &quot;([0-9]+)\\-([0-9]+)&quot;);<br/>
string t = regex_replace(string(&quot;8-8-8-8&quot;), tmp, string(&quot;$1&quot;), regex_constants::format_perl);<br/>


В итоге получается «8-8», а хочется 8.

Может какой ключик/параметр есть?

Можно конечно «рекурсивно/в цикле», но как тогда определить, что не было замены? Не хочется же строки до и после сравнивать.
  • Вопрос задан
  • 2969 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по информационной безопасности
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Kindman
@Kindman
>> Не хочется же строки до и после сравнивать.
Странно, но у меня именно такая мысль была (сравнить до и после), во время прочтения вопроса (пока не прочел эту последнюю строчку).
Если не хочется сравнивать сами строки, можно сравнить хеши этих строк, например md5 или sha1.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы