как использовать метод замены регулярного выражения Boost?

У меня есть эти переменные:

boost::regex re //regular expression to use
std::string stringToChange //replace this string
std::string newValue //new value that is going to replace the stringToChange depending on the regex.

Я хочу заменить только первое вхождение.

Спасибо, ребята.

РЕДАКТИРОВАТЬ: я нашел это:

boost::regex_replace(stringToChange, re, boost::format_first_only);

но он говорит, что функция не существует, я предполагаю, что параметры на данный момент неверны.


person unwise guy    schedule 04.07.2012    source источник


Ответы (1)


Вот пример основного использования:

#include <iostream>
#include <string>
#include <boost/regex.hpp>

int main(){
  std::string str = "hellooooooooo";
  std::string newtext = "o Bob";
  boost::regex re("ooooooooo");
  std::cout << str << std::endl;

  std::string result = boost::regex_replace(str, re, newtext);
  std::cout << result << std::endl;
}

Вывод

приветоооооооо

привет Боб

Убедитесь, что вы включили <boost/regex.hpp> и связались с библиотекой boost_regex.

person Jesse Good    schedule 04.07.2012