Boost.Regex 与 C++11 Regex

发布于 2024-12-07 05:38:29 字数 56 浏览 0 评论 0原文

有人可以解释一下两者之间的区别吗?现在学哪个比较好?知识如何从一个国家转移到另一个国家,反之亦然?

Could someone explain the differences between the two? Which would be better to learn right now? How would knowledge transfer from one to the other and vice-versa?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

情深如许 2024-12-14 05:38:29

boost 正则表达式库已将其纳入 C++0x,因此我猜测它将慢慢从 boost 中删除。但是,使用 boost 很好,因为您仍然可以在不支持 C++0x 的编译器中使用它。所以这真的取决于你。

The boost regex library made it into C++0x so I'm guessing it will slowly be removed from boost. However, using boost is nice because you can still use it with compilers without C++0x support. So it's really up to you.

鲜血染红嫁衣 2024-12-14 05:38:29

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

One major difference is, that C++11 does not provide the Perl syntax for regular expressions. So, if you tend to use Perl syntax you have to use the Boost::Regex library.

凉墨 2024-12-14 05:38:29

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

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

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

At least in Visual Studio 2013 this and related names (cmatch, regex_match) are the same in both namespaces. They also have the same (or similar?) interface.

So you can just change namespace and the same code will be compiled with another regex without warning and errors. And it should work the same of course.

P.S. I would prefer std::regex since it is part of C++11 and boost::regex is a third-party library. I'm sure few years later, boost will remove support for boost::regex.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文