C ++ 11 std :: regex_replace()创建带有某些字符串问题的regexp

时间:2013-06-21 22:32:25

标签: javascript c++ regex c++11 stl

我目前正在尝试编写一个类函数,它将使用C ++ 11 lib替换字符串中某个单词的每个出现。

void replace(std::string subject, std::string pattern, std::string replacement)
{
    std::regex exp(pattern);
    std::cout <<  std::regex_replace(subject, exp, replacement); 
}


replace(std::string("Hello world"),std::string("world"),std::string("planet")); 

什么都不返回。

我猜这个问题是正则表达式,但我不知道如何使用ECMAScript或其他任何可用的方法找到匹配特定字符串的正则表达式。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

完整性:正如Xaqq和Obvlious船长在评论中所述,gcc尚未支持正则表达式。

请参阅this gcc libstdc++ Status Page以供参考。

在MSVC 2012上,您的功能可以使用所需的输出。

replace("Hello world", "^(.*)world(.*)$", "$1planet$2");
  

Hello planet