12

C++11 正则表达式 是否有任何完整/正确的实现(现在)?

关于编译器支持与库支持的注意事项:

编译器支持= 编译器可以识别为相关功能添加到语言中的任何新语法。利用添加到程序中的新功能的代码将被编译。

库支持= 库已更新以实际实现该功能。添加到您的程序并链接到库的代码将起作用。

*编辑:我已使用新信息更新了此摘要,并将其移至下面的答案中。

4

3 回答 3

13

根据关于可以回答您自己的问题的堆栈交换政策,我正在使用新信息更新问题的摘要部分并将其移至此答案中。

GCC:regex直到 GCC 4.9.0 才 提供工作

Clang: 编译正则表达式

标准库:

  • 自 GCC 4.9.0(GNU 的标准库)以来,仅libstdc++支持正则表达式
  • libc++(LLVM 的标准库)支持正则表达式
  • libc++在Mac OS上完全验证
  • libc++可以从其他平台的源代码构建。
  • (我在Linux上构建并验证了一些正则表达式)

MSVC:正则 表达式从MSVC 2010 开始工作(根据@Laurent 的回答和相关的投票)

Boost: C++11 正则表达式“基于”或“仿照”Boost。我认为这意味着不完全相同。如果有明确的差异列表,请通过链接发表评论。

于 2013-09-05T20:26:12.577 回答
5

自 MSVC 2010 以来,我一直在使用该<regex>模块,它非常适合我的需要(使用来自cplusplus.com的文档)。

因此,如果您打算在 Windows 环境中进行开发,我建议您选择 MSVC 2010 或 2012。它开箱即用!

于 2013-09-03T07:51:11.100 回答
1

Clang 是完整的 C++11 功能。您可以在此处查看哪个版本中可用的功能:Clang C++11 features

于 2013-09-03T11:36:14.423 回答