2

我目前正在尝试编写一个类函数,该函数将使用 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 或任何其他可用的方法使正则表达式匹配某个字符串。

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

4

1 回答 1

1

为了完整起见:正如 Xaqq 和 Captain Obvlious 在评论中所说,gcc 尚不支持正则表达式。

请参阅此 gcc libstdc++ 状态页面以供参考。

在 MSVC 2012 上,您的函数适用于所需的输出。

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

你好星球

于 2013-06-21T22:54:07.243 回答