gpt4 book ai didi

如果给定空白正则表达式,则 regex_replace 中的 C++ Mac OS 无限循环

转载 作者:太空狗 更新时间:2023-10-29 21:17:09 24 4
gpt4 key购买 nike

执行时...

std::regex_replace("the string", std::regex(""), "doesn't matter");

...我的 Mac 将无限期挂起。我是 xcode 的新手,但我认为我正在正确使用它。我在调试程序时点击“暂停”,发现最后执行的代码在正则表达式库的深处。我需要空白的正则表达式才能工作,因为用户可能会输入空白。

这不会发生在 Windows 上(我正在开发跨平台)。

std::regex_match() 不会发生这种情况。

最佳答案

至于根本原因,请参阅 regex.cpp source codeApple Open Source :

case regex_constants::__re_err_empty:
return "An empty regex is not allowed in the POSIX grammar.";

因此,您必须检查用户输入并禁止传递空字符串来创建正则表达式对象。

关于如果给定空白正则表达式,则 regex_replace 中的 C++ Mac OS 无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33574723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com