我目前正在尝试编写一个类函数,它将使用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或其他任何可用的方法找到匹配特定字符串的正则表达式。
有谁知道如何解决这个问题?
答案 0 :(得分:1)
完整性:正如Xaqq和Obvlious船长在评论中所述,gcc尚未支持正则表达式。
请参阅this gcc libstdc++ Status Page以供参考。
在MSVC 2012上,您的功能可以使用所需的输出。
replace("Hello world", "^(.*)world(.*)$", "$1planet$2");
Hello planet