在C ++中易于使用的正则表达式支持?

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

要求:

  • 无法使用Boost或ACE正则表达式库(不幸)
  • 无法使用.NET Regex(或任何托管代码)

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

0
额外 编辑
意见: 1
但客户不必增加安装。只需将静态链接与增强链接,并且应该没有问题。 (无论如何你应该总是静态链接到boost,因为即使客户端安装了它们,它们可能没有相同的版本,或者使用相同的选项编译它们。)
额外 作者 James Kanze,
@JamesDevlin我不知道有关Boost的运输情况; Boost不是万能药,我选择是否使用它或根据个案的情况。 (事实上​​,因为我现在可以使用C ++ 11,所以我根本没有使用Boost。关于我以前使用它的所有内容都是正则表达式。)
额外 作者 James Kanze,
只是好奇 - 为什么你不能使用提升?
额外 作者 svec,

9 答案

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

0
额外

If you use Visual Studio you can use Visual C++ 2008 Feature Pack Release, this implements some of TR1, and includes regular expression parsing. Get it

0
额外

try libpcre

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

0
额外

为什么不使用Microsoft ATL的正则表达式库? Kenny Kerr写了一篇最近的文章

ATL包含一个轻量级的正则表达式实现。虽然   最初是Visual C ++的一部分,它现在包含在ATL服务器中   下载。      CAtlRegExp 类模板实现了解析器和匹配   发动机。 ...      

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

0
额外

C++11 and forward now contains the standard regular expression library.
Include the header, and use.

0
额外

The free ATL Server Library and Tools from CodePlex includes a regex parser. See AtlServer in the CodePlex Archive

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

我会再次推荐 PCRE 。我已经在Windows的C ++项目中使用它,它工作得很好。它是免费的,即使是构建商业软件。它还实现了一些事实上的标准正则表达式语言,欢迎您的用户使用。 PCRE当然是Perl兼容的,Python也使用相同的库。

本地的PCRE接口有点尴尬,非常C型,所以可能值得为它编写一个漂亮的C ++包装器。很可能已经有一个,但我不熟悉任何。

0
额外

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

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

希望能帮助到你

0
额外

Qt has also a nice Regular Expression implementation QRegExp. It is also platform independent.

0
额外