【发布时间】:2015-02-08 19:43:09
【问题描述】:
有人可以向我解释一下 - 为什么这段代码会在 std::regex_match 之后返回 true 吗?
std::regex reg("(-)?(\\d)\{0,5\}(.)?(\\d)\{0,10\}");
std::string str("--");
std::regex_match(str, reg);
谢谢!
【问题讨论】:
-
另一件事是,
{}如果您使用它们来表示量词,则不需要转义。\{和\}在程序编译时会变成{和},因为它们不是有效的转义序列。而且没有必要写(-)?或(.)?,写-?和.?(好吧,除非你想捕获它们)。
标签: c++ regex visual-c++ c++11