std::regex_error 运行时抛出异常
std::regex_error exception thrown at runtime
鉴于此代码有效:
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
异常。初始化有什么问题?
所以,是的,正如评论中提到的:
(\d{2,3}(-\d\d) { 2 })
应该是
(\d{2,3}(-\d\d){2})
否则 {2}
与 space 相关而不是 (-\d\d)
,并且其他奇怪的事情也可能发生......
您的正则表达式中有错字。改变这个:
regex r{ R"(\d{2,3}(-\d\d) { 2 })" };
收件人:
regex r{ R"(\d{2,3}(-\d\d){2})" };
鉴于此代码有效:
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
异常。初始化有什么问题?
所以,是的,正如评论中提到的:
(\d{2,3}(-\d\d) { 2 })
应该是
(\d{2,3}(-\d\d){2})
否则 {2}
与 space 相关而不是 (-\d\d)
,并且其他奇怪的事情也可能发生......
您的正则表达式中有错字。改变这个:
regex r{ R"(\d{2,3}(-\d\d) { 2 })" };
收件人:
regex r{ R"(\d{2,3}(-\d\d){2})" };