鉴于此代码有效:
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
个异常。初始化有什么问题?
答案 0 :(得分:3)
所以,是的,正如评论中提到的那样:
(\d{2,3}(-\d\d) { 2 })
应该是
(\d{2,3}(-\d\d){2})
否则{2}
与空间而不是(-\d\d)
相关,其他奇怪的事情也可能发生......
答案 1 :(得分:2)
你的正则表达式中有拼写错误。改变这个:
regex r{ R"(\d{2,3}(-\d\d) { 2 })" };
要:
regex r{ R"(\d{2,3}(-\d\d){2})" };