c++ - 如何根据引用进行 regex_replace

标签 c++ reference

我有这个方法:

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

但它没有按预期工作。字符串未被给定规则替换。是否可以对引用执行 regex_replace 并返回此变量引用?

最佳答案

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);
}

关于c++ - 如何根据引用进行 regex_replace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58378097/

相关文章:

c++ - 在头文件中包含一个巨大的 Vector

c++ - 模板使用中空 "<>"是什么意思?

c++ - 引用数据成员和 move 构造函数

.net - 我应该如何使用 Git 在多台计算机上的 SharpDevelop 项目中使用 SQL Server Compact Edition?

c++ - 方法不能初始化值c++

reference - 引用循环的实际例子有哪些?

c++ - Visual Studio 2010 Win32 应用程序无法在 Windows XP 上启动

c# - 如何将 SWIG 生成的 C++ DLL 引用添加到 C# 项目?

c++ - 将 lambda 函数转换为函数指针是否安全?

.net - 无法加载引用库 - 该进程无法访问该文件,因为该文件正在被另一个进程使用