我对基本的正则表达式库感兴趣。我相信我可以使用 C++ TR1。在研究期间,类似的答案声称 C++ TR1 是由 Boost 提供的(有些人放弃了)。
也许我遗漏了一些东西,但我没有看到 C++ 技术委员会对 Boost 的确认,我怀疑 Microsoft、Dinkumware 等是否在他们的实现中使用它。查看 GCC 资源,我什至不确定 GCC 是否使用了 Boost 库。
任何人都可以指出 Boost 提供 TR1 Regex 的说法的参考吗?
杰夫
TR1 不是由 boost 提供的。但是boost有自己的TR1实现。 http://www.boost.org/doc/libs/1_47_0/doc/html/boost_tr1.html
TR1 库提供了 C++ Technical Report on Standard Library Extensions 的实现。这个库本身并不实现 TR1 组件,而是一个瘦包装器,将包含您的标准库的 TR1 实现(如果有的话),否则它将包含 Boost 库等效项,并将它们导入命名空间 std::tr1。
Boost不提供TR1 正则表达式。TR1 将由您的实现提供。然而,TR1 主要基于Boost 库中的内容。Boost 的许多贡献者恰好是 C++ 标准委员会成员,因此 Boost 经常被用作未来采用 C++ 标准库的试验场。然而,TR1 现在已经很老了,大多数实现都将所有内容都移到了它们的标准库中,因此没有太多理由在 TR1 命名空间中使用东西,除非是为了向后兼容。
我推荐PCRE。它是一个非常成熟、健壮和强大的开源 C 库正则表达式引擎,由 Phillip Hazel 编写,并被许多著名的项目使用,如 PHP、Apache、KDE、Safari 等。有一个 C++ 包装器可用。