【发布时间】:2017-03-04 11:14:34
【问题描述】:
与std::regex_replace,
我可以使用“$”匹配单词的结尾,然后附加其他字符。
std::cout << std::regex_replace("word",std::regex("$"),"s") << '\n';
//prints: words
由于结果与原始输入不同,我假设正则表达式匹配。
然而,
std::cout << std::boolalpha;
std::cout << std::regex_match("word",std::regex("$")) << '\n';
//prints: false
怎么会是正则表达式不匹配,而regex_replace却能进行替换?
我还尝试为 0 个或更多字符添加 *,但这引发了异常:
std::cout << std::regex_match("word",std::regex("*$")) << '\n';
std::cout << std::regex_replace("word",std::regex("*$"),"s") << '\n';
【问题讨论】:
标签: c++ regex exception string-matching