C++ での使いやすい正規表現のサポート?[閉まっている]

StackOverflow https://stackoverflow.com/questions/1041

  •  08-06-2019
  •  | 
  •  

質問

プラットフォームに依存しない、または Windows 固有の、ネイティブ C++ 用の堅牢で使いやすい正規表現評価ツールを探しています。

要件:

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

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

役に立ちましたか?

解決

C++11 には正規表現のサポートが含まれるようになりました。プラットフォームに依存しません。最新のコンパイラが必要なだけです。どれを使用すればよいかについては、次のリストを確認してください。

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

それが役に立てば幸い

他のヒント

試す リブプクレ

Windows で行き詰まっている場合は、Windows ポートがあり、それが機能するはずです。知っている 電子テキストエディタ 使っているので、少なくともそれが機能する証拠です:-)

Visual Studio を使用している場合は、Visual C++ 2008 Feature Pack リリースを使用できます。これには TR1 の一部が実装されており、正規表現解析が含まれています。 それを得る

Qt 素敵な 正規表現 実装 QRegExp. 。また、プラットフォームに依存しません。

GNU C ライブラリはサポートしています 正規表現. 。オープンになっており、REコードは簡単に抽出できるようです。

GNU C ライブラリの正規表現機能 (regcomp()、regexec() およびその仲間) が壊れています。代わりに libetre を使用してください。関数のシグネチャは、glibc によって提供されるものと一致します。http://laurikari.net/tre/

私が次に勧めたいのは、 PCRE. 。Windows の C++ プロジェクトでこれを使用しましたが、うまく機能します。商用ソフトウェアを構築する場合でも無料です。また、事実上の標準の正規表現言語のようなものも実装されており、ユーザーにとっては歓迎されるでしょう。もちろん PCRE は Perl と互換性があり、Python も同じライブラリを使用します。

ネイティブ PCRE インターフェイスは少し扱いに​​くく、非常に C スタイルなので、それを囲む優れた C++ ラッパーを作成する価値はおそらくあります。すでに存在している可能性が非常に高いですが、私はどれも知りません。

C++11 以降には、 標準正規表現ライブラリ.
を含めます <regex> ヘッダーを追加して使用します。

Microsoft ATL の正規表現ライブラリを使用してみてはいかがでしょうか?ケニー・カーはこう書いています 短い記事 最近それについて。

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

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

正規表現の文法は、 atlrx.hヘッダファイル。

CodePlex の無料の ATL サーバー ライブラリとツールには、正規表現パーサーが含まれています。見る CodePlex アーカイブの AtlServer

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top