29

プラットフォーム非依存または Windows 固有の、ネイティブ C++ 用の堅牢で使いやすい正規表現エバリュエーターを探しています。

要件:

  • Boost または ACE 正規表現ライブラリを使用できません (残念ながら)
  • .NET Regex (またはマネージ コード) を使用できない

主な要件は、スタンドアロンでオープンであることです。

4

10 に答える 10

12

libpcreを試す

Windows で立ち往生している場合は、動作するはずの Windows ポートがあります。私はe-texteditorがそれを使用していることを知っているので、少なくともそれが機能する証拠です:-)

于 2008-08-04T06:23:51.847 に答える
10

Visual Studioを使用する場合は、Visual C ++ 2008 Feature Packリリースを使用できます。これにより、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 に答える
3

Microsoft ATL の正規表現ライブラリを使用しないのはなぜですか? ケニー・カーは最近、それについて短い記事を書きました。

ATL には、軽量の正規表現の実装が含まれています。元は Visual C++ の一部でしたが、現在は ATL サーバーのダウンロードに含まれています。

CAtlRegExpクラス テンプレートは、パーサーとマッチング エンジンを実装します。...

正規表現の文法は、atlrx.h ヘッダー ファイルの先頭で定義されます。

于 2008-08-11T06:13:15.927 に答える
2

CodePlex の無料の ATL サーバー ライブラリとツールには、正規表現パーサーが含まれています。CodePlex アーカイブの AtlServer を参照してください

ATL サーバーは、開発者がサービス タイプの C++ アプリケーションおよび Web サービスのクライアント部分とサーバー部分の両方を構築できるようにする C++ クラスのライブラリです。SOAP メッセージング、キャッシュ機能、スレッド機能、正規表現処理、セッション状態の管理、パフォーマンス監視、MIME サポート、IIS との統合、セキュリティと対話するためのクラスなど、大規模なインターネット サイトを構築するために必要な機能の多くを提供します。および暗号化インフラストラクチャ。ライブラリの以前のバージョンは、Visual Studio 2002、Visual Studio 2003、および Visual Studio 2005 の一部です。このプロジェクトは、Visual Studio 2005 SP1 の一部としてリリースされたライブラリのバージョンから開始されました。

于 2008-09-16T20:06:12.477 に答える