std::regex_error在运行时引发异常

std::regex_error exception thrown at runtime

本文关键字:异常 运行时 error regex std      更新时间:2023-10-16

假设此代码有效:

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}(-dd) { 2 })" };

引发CCD_ 1异常。初始化有什么问题?

所以,是的,正如评论中提到的:

(d{2,3}(-dd) { 2 })

应该是

(d{2,3}(-dd){2})

否则,{2}与空间相关,而不是与(-dd)相关,其他奇怪的事情也可能发生…

您的正则表达式中有一个拼写错误。更改此项:

regex r{ R"(d{2,3}(-dd) { 2 })" };

收件人:

regex r{ R"(d{2,3}(-dd){2})" };