This question already has an answer here:
the same regex but different results on Linux and Windows only C++

(1个答案)


3年前关闭。




此代码编译并运行(解析backtrace_symbols)

在gcc中,调用regex_match时出现“regex_error”异常
而在VS2017中没有吗?!?
const std::regex r( R"(\((\w*)\+\w*\)\s+\[(\w+)\])");
std::smatch m;
const bool bMatch = std::regex_match(curStr,m,r);

有人可以解释吗?

最佳答案

我认为这是4.8.5版本之前的错误
You can see it here
我什至在5.3.0版本之前发现了一些错误
所以我建议您至少在gcc中使用5.4.0版本
See a bug in version 5.3.0

关于c++ - 为什么此代码在Visual Studio中有效,但在gcc中却失败? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43308500/

10-09 20:00