Cアプリケーションでの文字列処理を支援するために正規表現パーサーを使用したいと思います。私は理想的には軽量でオープンソースのものを探しています。ターゲットプラットフォームは組み込みシステムであるため、特にメモリ消費量を可能な限り節約することを目指しています。私はオンラインでいくつかのオプションを見つけましたが、誰かがこの特定のコンテキストで役立つかもしれない追加の提案をすることができるかどうか疑問に思いました。
どうもありがとう、
オープン ソースのテキスト エディター コンポーネントであるScintillaは、 Ozan S. Yigit の RE エンジンを使用します。
それが選ばれたのは、それがパブリック ドメインにあり (邪魔なライセンスがない)、非常に軽量であるためです。しかし、それは少し制限されています...価値のあるものとして、RESearch.cxxは、私が作成したいくつかのマイナーな拡張機能を備えた、少し最新のコード(C++に変換されていますが、Cに戻すのは複雑ではないはずです)を使用しています( \d \s \w などのサポート)。
Henry Spencer の正規表現ライブラリなど、いくつかの代替手段があります。
考えてみれば、言語自体と同様に、Lua正規表現エンジン (文字列ライブラリ、gsub 実装など) もおそらく高速で小型です。癖と制限がありますが、非常に使いやすいです。
サイド プロジェクトのLPegは、軽量でありながら強力な、RE の興味深い代替手段になる可能性があります。
フル機能の正規表現の実装が必要ない場合(そして必要ないように聞こえます)、 BeautifulCodeで強調表示されているBrianKernighanとRobPikeによって記述されたコード はおそらくあなたのニーズに合うでしょう。私は、本に登場するコードの起源であると私が思うドブ博士の記事を見つけました。
軽量の要件を考えると、 POSIX BRE および ERE 正規表現フレーバーを実装するHenry Spencer の正規表現ライブラリをお勧めします。これらは、おそらくユーザーがすでに使い慣れている標準的な正規表現です。