Как regex_replace по ссылке - PullRequest
       14

Как regex_replace по ссылке

0 голосов
/ 14 октября 2019

У меня есть этот метод:

std::string pluralize(std::string const& word) const {
        std::regex_replace(word, m_pattern, m_replacement);
        return word;
    }

Но он работает не так, как ожидалось. Строка не заменяется данным правилом. Можно ли regex_replace делать по ссылке и чем возвращать эту ссылку на переменную?

1 Ответ

0 голосов
/ 14 октября 2019

regex_replace не изменяется на месте, но возвращает новое string:

std::string pluralize(std::string const& word) const {
    return std::regex_replace(word, m_pattern, m_replacement);;
}

Если вы хотите отредактировать оригинал string:

void pluralize(std::string &word) const {
    word = std::regex_replace(word, m_pattern, m_replacement);
}

И если вы хотите изменить и вернуть:

std::string pluralize(std::string &word) const {
    return word = std::regex_replace(word, m_pattern, m_replacement);
}
...