执行......
std::regex_replace("the string", std::regex(""), "doesn't matter");
...我的Mac将无限期挂起。我是xcode的新手,但我认为我正确使用它。我在调试程序时点击“暂停”,发现最后执行的代码在regex库中。我需要空白正则表达式才能工作,因为用户可能输入空白。
这在Windows上不会发生(我正在开发跨平台)。
std::regex_match()
不会发生这种情况。
答案 0 :(得分:3)
至于根本原因,请参阅regex.cpp source code上的Apple Open Source:
case regex_constants::__re_err_empty:
return "An empty regex is not allowed in the POSIX grammar.";
因此,您必须检查用户输入并禁止传递空字符串以创建正则表达式对象。