29

我正在为本地 C++ 寻找一个健壮的、易于使用的正则表达式评估器,无论是平台独立的还是特定于 Windows 的。

要求:

  • 不能使用 Boost 或 ACE 正则表达式库(很遗憾)
  • 不能使用 .NET Regex(或任何托管代码)

主要要求是它应该是独立的和开放的。

4

10 回答 10

13

C++11 现在包括对正则表达式的支持。它将独立于平台。你只需要一个最近的编译器。检查以下列表以了解使用哪一个。

http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport

希望能帮助到你

于 2013-06-19T18:47:47.330 回答
12

尝试libpcre

如果你被困在 Windows 上,他们有一个应该可以工作的 Windows 端口。我知道e-texteditor使用它,所以至少这是它有效的证明:-)

于 2008-08-04T06:23:51.847 回答
10

如果您使用 Visual Studio,您可以使用 Visual C++ 2008 Feature Pack Release,它实现了一些 TR1,并包括正则表达式解析。得到它

于 2008-08-04T19:44:24.397 回答
10

Qt还有一个不错的正则表达式实现QRegExp。它也是独立于平台的。

于 2008-08-10T13:07:10.103 回答
7

GNU C 库支持正则表达式。它是开放的,并且 RE 代码似乎很容易提取。

于 2008-08-04T06:41:29.547 回答
6

我会支持PCRE的建议。我在 Windows 的 C++ 项目中使用过它,效果很好。它是免费的,甚至用于构建商业软件。它还实现了某种事实上的标准正则表达式语言,这将受到您的用户的欢迎。PCRE 当然与 Perl 兼容,Python 也使用相同的库。

原生 PCRE 接口有点笨拙且非常 C 风格,因此可能值得围绕它编写一个不错的 C++ 包装器。很可能已经有一个,但我不熟悉。

于 2008-08-11T08:25:13.337 回答
5

GNU C 库正则表达式工具(regcomp()、regexec() 和朋友)已损坏。改用 libetre;函数签名与 glibc 提供的签名匹配。 http://laurikari.net/tre/

于 2008-08-04T12:23:35.067 回答
4

C++11 及更高版本现在包含标准正则表达式库
包括<regex>标题,并使用。

于 2016-05-08T14:36:25.613 回答
3

为什么不使用 Microsoft ATL 的正则表达式库?肯尼·克尔最近写了一篇关于这方面的短文。

ATL 包括一个轻量级的正则表达式实现。虽然最初是 Visual C++ 的一部分,但它现在包含在 ATL Server 下载中。

CAtlRegExp模板实现解析器和匹配引擎。...

正则表达式语法定义在atlrx.h 头文件的顶部。

于 2008-08-11T06:13:15.927 回答
2

CodePlex 的免费 ATL 服务器库和工具包括一个正则表达式解析器。请参阅CodePlex 存档中的 AtlServer

ATL Server 是一个 C++ 类库,允许开发人员构建服务型 C++ 应用程序和 Web 服务的客户端和服务器部分。它提供了构建大型 Internet 站点所需的许多功能,例如 SOAP 消息传递、缓存设施、线程设施、正则表达式处理、会话状态管理、性能监控、MIME 支持、与 IIS 的集成以及与安全性交互的类和加密基础设施。该库的早期版本是 Visual Studio 2002、Visual Studio 2003 和 Visual Studio 2005 的一部分。该项目从作为 Visual Studio 2005 SP1 的一部分发布的库版本开始。

于 2008-09-16T20:06:12.477 回答