有人可以解释两者之间的差异吗?现在学习哪个更好?知识如何从一个转移到另一个,反之亦然?
答案 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的支持。