C++ 11正则表达式匹配

Mat*_*ine 11 c++ regex gcc

我在C++ 11中尝试一个相当简单的正则表达式匹配(使用gcc 4.7.2),但是我遇到了很多麻烦.尝试使用构造模式

std::regex unquoted(R"regex(\s*([^",]+)\s*)regex");
Run Code Online (Sandbox Code Playgroud)

导致构造函数std::regex_error使用代码抛出异常std::regex_constants::error_escape.在线的几个正则表达式测试人员对同一个表达式没有任何问题,我尝试使用不同的一些不同的语法选项无济于事.C++正则表达式语法是否存在根本不同的东西,我没有理解?

Chr*_*odd 17

请参阅gcc的stdc ++ 11实现状态页面 - 从gcc 4.8开始不支持正则表达式

编辑后代:正如评论中所提到的,正则表达式库现在已经存在libstdc++,应该在gcc 4.9及更高版本中.

  • 根据http://libcxx.llvm.org/,clang自己的C++标准库应该支持regex,但仅在OSX上默认使用.在其他平台上,clang默认使用"本机"C++标准库. (3认同)