Задать вопрос
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.

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

Можно конечно «рекурсивно/в цикле», но как тогда определить, что не было замены? Не хочется же строки до и после сравнивать.
  • Вопрос задан
  • 2967 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Kindman
@Kindman
>> Не хочется же строки до и после сравнивать.
Странно, но у меня именно такая мысль была (сравнить до и после), во время прочтения вопроса (пока не прочел эту последнюю строчку).
Если не хочется сравнивать сами строки, можно сравнить хеши этих строк, например md5 или sha1.
Ответ написан
Ваш ответ на вопрос

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

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