正则表达式 - 为何如下正则代码在VC++ 调试模式下crash

浏览:35日期:2023-05-05

问题描述

为何如下正则代码在VC++ 2013 调试模式下crash,而Release模式可以正常运行

正则表达式 - 为何如下正则代码在VC++ 调试模式下crash

#include <regex>#include <iostream>int main(){ auto P = std::regex(R'(^([^x00]*?)$)'); std::smatch M; if (std::regex_search(std::string('A'), M, P)){std::cout << M[0].str(); } return 0;}

问题解答

回答1:

正则表达式 - 为何如下正则代码在VC++ 调试模式下crash

测试了下。。没有问题

不过在VS2015下有个小问题,regex_search函数里直接传std::string('A')进去会提示错误。原因应该是这里需要接收的是一个引用,而构造函数传值过后就被删除了。

正则表达式 - 为何如下正则代码在VC++ 调试模式下crash

相关文章: