有人可以解释两者之间的区别吗?现在学习哪个更好?知识如何从一个转移到另一个,反之亦然?
问问题
10023 次
3 回答
10
boost 正则表达式库将它变成了 C++0x,所以我猜它会慢慢地从 boost 中删除。但是,使用 boost 很好,因为您仍然可以在不支持 C++0x 的编译器中使用它。所以这真的取决于你。
于 2011-09-28T21:20:43.520 回答
7
一个主要区别是,C++11 没有为正则表达式提供 Perl 语法。因此,如果您倾向于使用 Perl 语法,则必须使用 Boost::Regex 库。
于 2012-08-01T21:36:57.440 回答
1
至少在 Visual Studio 2013 中,此名称和相关名称(cmatch、regex_match)在两个命名空间中是相同的。它们也具有相同(或相似?)的界面。
因此,您只需更改命名空间,相同的代码将使用另一个正则表达式编译,而不会出现警告和错误。当然,它应该是一样的。
PS 我更喜欢 std::regex 因为它是 C++11 的一部分,而 boost::regex 是第三方库。我敢肯定,几年后,boost 将取消对 boost::regex 的支持。
于 2015-01-10T23:40:13.123 回答