代码之家  ›  专栏  ›  技术社区  ›  user2189331

在C++中易于使用正则表达式支持?[关闭]

  •  23
  • user2189331  · 技术社区  · 16 年前

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

    要求:

    • 不能使用boost或ace regex库(不幸的是)
    • 无法使用.NET regex(或任何托管代码)

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

    10 回复  |  直到 6 年前
        1
  •  10
  •   stack reader    8 年前

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

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

    希望它有帮助

        2
  •  10
  •   Orion Edwards    16 年前

    尝试 libpcre

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

        3
  •  8
  •   vzczc    16 年前

    如果使用VisualStudio,可以使用VisualC++ 2008的特性包发布,这实现了一些Tr1,并包括正则表达式解析。 Get it

        4
  •  8
  •   Quonux    11 年前

    Qt 还不错 Regular Expression 实施 QRegExp . 它也是平台独立的。

        5
  •  5
  •   Mark Harrison    16 年前

    GNU C库支持 regular expressions . 它是开放的,重新编码似乎很容易提取。

        6
  •  4
  •   Mark Papadakis    16 年前

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

        7
  •  4
  •   Greg Hewgill    16 年前

    我会把这个建议推荐给 PCRE . 我在Windows的C++项目中使用它,它工作得很好。它是免费的,甚至用于构建商业软件。它还实现了一些事实上的标准正则表达式语言,这将受到您的用户的欢迎。PCRE当然与Perl兼容,而Python也使用相同的库。

    本地PCRE接口有点笨拙,非常C风格,因此它可能值得编写一个很好的C++包装器。很可能已经有一个了,但我对任何一个都不熟悉。

        8
  •  3
  •   Trevor Hickey    8 年前

    C++ 11和前向现在包含 standard regular expression library .
    包括 <regex> 标题,并使用。

        9
  •  2
  •   Richard Chambers    6 年前

    为什么不使用Microsoft ATL的Regex库?肯尼·克尔写了一篇 short article 最近的事。

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

    这个 CAtlRegExp 类模板实现解析器和匹配 发动机。…

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

        10
  •  1
  •   Richard Chambers    6 年前

    codeplex提供的免费ATL服务器库和工具包括一个regex解析器。见 AtlServer in the CodePlex Archive

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