Boost.Regex vs C ++ 11 Regex

时间:2011-09-28 21:13:39

标签: c++ regex boost c++11 boost-regex

有人可以解释两者之间的差异吗?现在学习哪个更好?知识如何从一个转移到另一个,反之亦然?

3 个答案:

答案 0 :(得分:10)

boost regex库使它成为C ++ 0x所以我猜它会慢慢从boost中删除。但是,使用boost很好,因为你仍然可以在没有C ++ 0x支持的编译器中使用它。所以这取决于你。

答案 1 :(得分:7)

一个主要区别是,C ++ 11不提供正则表达式的Perl语法。因此,如果您倾向于使用Perl语法,则必须使用Boost :: Regex库。

答案 2 :(得分:0)

至少在Visual Studio 2013中,这两个命名空间中的相关名称(cmatch,regex_match)是相同的。它们也有相同(或相似的)界面。

因此,您只需更改命名空间,相同的代码将使用另一个正则表达式进行编译,而不会出现警告和错误。它当然应该是一样的。

P.S。我更喜欢std :: regex,因为它是C ++ 11的一部分而boost :: regex是第三方库。我确定几年之后,boost将取消对boost :: regex的支持。