是否支持?如果是,我应该在哪里获取相关文档... 如果不支持,那么有什么更好的替代方案吗?
是否支持?如果是,我应该在哪里获取相关文档... 如果不支持,那么有什么更好的替代方案吗?
C++11现在终于拥有了一个标准正则表达式库 - std::regex。
如果您无法使用C++11实现,一个很好的替代方案可能是boost regex。虽然它与std::regex不完全相同(例如std::regex中不存在"empty()"方法),但仍然是一个非常成熟的C++正则表达式实现。
微软Visual C++ 2008功能包1(现在已整合到Visual Studio 2008服务包1中)包含了“官方”的TR1正则表达式类型的实现。尽情使用吧 :-)
如果你所说的“标准”是指编译器捆绑的话,那就不是。但是大多数其他捆绑正则表达式扩展的语言使用的都是相当标准的 c 实现。例如 PCRE-Perl兼容正则表达式和C库都支持POSIX正则表达式(请参见man页)。
标准ISO / IEC 14882:2011编程语言C ++将regex类描述为C ++库的一部分,该库受成熟的Boost库的影响。
有趣的是,截至2013年1月,编译器对此标准的遵循仍然不完全,例如GNU编译套件的流行C ++编译器不支持/遵循此标准的这一部分。
因此,在编译器支持达到合规性之前,最好使用Boost。
Qt,来自Trolltech的库,也有一个正则表达式实现,我发现非常容易使用。然而,如果您不打算在其他方面使用Qt,我建议使用Boost.Regex,因为您可能也会在其他方面使用Boost。