C++ 当我的正则表达式无效时,为什么正则表达式匹配不抛出错误?
我编写了这样的代码C++ 当我的正则表达式无效时,为什么正则表达式匹配不抛出错误?,c++,regex,c++11,C++,Regex,C++11,我编写了这样的代码regex\u match(“ab”,“a**b”),它返回true。 正如我们所知,“a**b”是一个无效的正则表达式,不是吗?--至少在中是无效的。 我试图抓住一个例外,但什么也没发生。它只是执行为“a**b”是一个有效的正则表达式。 当我尝试使用regex_搜索时,也没有发生任何事情。 我想知道我是否误用了这个函数,或者regex库中有一个bug。是什么让你认为它会抛出错误?您是否检查了@Tas的返回值?如果正则表达式不正确,则会出现std::regex_错误,并且会出现
regex\u match(“ab”,“a**b”)
,它返回true。
正如我们所知,“a**b”是一个无效的正则表达式,不是吗?--至少在中是无效的。
我试图抓住一个例外,但什么也没发生。它只是执行为“a**b”是一个有效的正则表达式。
当我尝试使用regex_搜索时,也没有发生任何事情。
我想知道我是否误用了这个函数,或者regex库中有一个bug。是什么让你认为它会抛出错误?您是否检查了@Tas的返回值?如果正则表达式不正确,则会出现
std::regex_错误
,并且会出现异常,但是。OP的代码不会编译,但它通过regex_匹配(“ab”,std::regex(“a**b”))得到了足够简单的修复代码>。什么使您认为它会抛出错误?您是否检查了@Tas的返回值?如果正则表达式不正确,则会出现std::regex_错误
,并且会出现异常,但是。OP的代码不会编译,但它通过regex_匹配(“ab”,std::regex(“a**b”))得到了足够简单的修复代码>。