【发布时间】:2009-09-14 09:35:50
【问题描述】:
是吗?如果是,我在哪里可以得到它的文档...如果不是,那么哪个是最好的选择?
【问题讨论】:
-
顺便说一句:您可以通过搜索更快、更轻松地获得大量信息:stackoverflow.com/search?q=c+c%2B%2B+regex+standard
标签: c++ c regex standard-library
是吗?如果是,我在哪里可以得到它的文档...如果不是,那么哪个是最好的选择?
【问题讨论】:
标签: c++ c regex standard-library
C++11 现在终于有了standard regex library - std::regex。
如果您无法访问 C++11 实现,一个不错的选择可能是boost regex。它并不完全等同于 std::regex(例如 the "empty()" method is not in the std::regex),但它仍然是 C++ 的一个非常成熟的正则表达式实现。
【讨论】:
在类 UNIX 系统下,您可以使用 POSIX regex functions。
【讨论】:
Microsoft Visual C++ 2008 Feature Pack 1(现已纳入 Visual Studio 2008 Service Pack 1)包含“官方”TR1 reg ex 类型的实现。把自己打晕:-)
【讨论】:
检查boost regex 库。它应该成为 C++0x 标准的一部分。
【讨论】:
如果 standard 你的意思是与编译器捆绑在一起,那么不是。但是大多数捆绑正则表达式扩展的其他语言都使用非常标准的c 实现。例如。 PCRE - Perl Compatible Regular Expression 和 C 库支持 POSIX 正则表达式(请参阅 man page)。
【讨论】:
正则表达式是 C++ 扩展 TR1 的一部分。 Dinkumware、visual studio 和其他公司已经实现了这一点。 见
【讨论】:
Qt,来自 Trolltech,也有一个我觉得很容易使用的正则表达式实现。但是,如果您不打算将 Qt 用于其他任何用途,我会使用 Boost.Regex,因为您可能也会将 Boost 用于其他用途。
【讨论】:
标准 ISO/IEC 14882:2011 编程语言 C++ 将正则表达式类描述为 C++ 库的一部分,该库深受成熟的 Boost 库的影响。
奇怪的是,截至 2013 年 1 月,编译器对该标准的遵守情况仍然参差不齐,例如GNU 编译器套件的流行 C++ 编译器不支持/不遵守这部分标准。
因此,最好在此时使用 Boost,直到编译器支持达到合规性。
【讨论】:
【讨论】: