【发布时间】:2013-09-06 04:43:24
【问题描述】:
C++11 正则表达式是否有完整/正确的实现(现在)?
关于编译器支持与库支持的注意事项:
编译器支持 = 编译器可以识别为相关功能添加到语言中的任何新语法。利用添加到程序中的新功能的代码将被编译。
库支持 = 已更新库以实际实现该功能。添加到您的程序并链接到库的代码将起作用。
*编辑:我已使用新信息更新了此摘要并将其移至下面的答案中。
【问题讨论】:
-
最近有很多工作要为 libstdc++ 添加
<regex>支持。至少部分正则表达式算法应该在 GCC 4.9 中可用。 -
对于 MSVC,您有 msdn 页面,其中包含哪个版本的视觉 msdn.microsoft.com/en-us/library/bb982727%28v=vs.120%29.aspx 支持的语法
-
现在 Clang 不应该完全兼容 C++11 吗? Clang status
-
@RedX Clang 编译器,是的。 libc++ 库,也可以。当然,在这两种情况下,都可能存在错误。但是,当您将 Clang 与不同的标准库一起使用时,您当然会受到该库支持的限制,因此如果您使用当前的 libstdc++,则没有正则表达式。
-
有一个“regex.h”,它非常古老,基本上适用于所有东西。我正在使用
但意识到我的构建不是 C++11,所以我基本上切换到“regex.h”(稍微复杂一点)并且它起作用了。它也是 posix/windows。