【发布时间】:2015-06-03 20:00:58
【问题描述】:
鉴于此代码有效:
regex r1{ "fish"s };
smatch m1;
if (regex_search("I love fish and chips"s, m1, r1))
cout << m1[0] << endl;
我相信VS2015支持正则表达式。但是,这个正则表达式对象的初始化:
regex r{ R"(\d{2,3}(-\d\d) { 2 })" };
抛出std::regex_error 异常。初始化有什么问题?
【问题讨论】:
-
尝试将
{ 2 }(加上{留下的空格)替换为{2}或-替换为\-。 -
@Xufox 哇,伙计,你完全正确!这部分正则表达式 (-\d\d) { 2 } 需要写成 (-\d\d){2}
-
@Xufox 谢谢 :) 我花了一个小时来解决这个小错误。
-
@NikolayZhulikov:仅供参考,GCC 4.9.0 supports
<regex>
标签: c++ regex c++11 visual-c++ visual-studio-2015