2008-11-20 7 views
8

Ich möchte einen Regex-Parser verwenden, um bei der Verarbeitung einiger Zeichenfolgen in einer C-Anwendung zu helfen. Ich suche idealerweise nach etwas Leichtem und Open-Source. Die Zielplattform ist ein eingebettetes System, sodass wir versuchen, so viel Speicher wie möglich zu sparen. Ich habe eine Reihe von Optionen online gefunden, aber ich habe mich gefragt, ob jemand weitere Vorschläge machen kann, die in diesem speziellen Kontext helfen könnten.Leichtgewichtiger Regex-Parser

Vielen Dank,

Antwort

7

Scintilla, eine Open-Source-Texteditor Komponente verwendet Ozan S. Yigit's RE engine

Es wurde gewählt, weil es in der Öffentlichkeit (also keine belastende Lizenz) und ist sehr leicht. Aber es ist ein bisschen begrenzt ... Für was es wert ist, verwendet RESearch.cxx einen etwas moderneren Code (konvertiert in C++, aber es sollte nicht komplex sein, es zurück in C zu konvertieren) mit einigen kleineren Erweiterungen von mir selbst gemacht (Unterstützung von \ d \ s \ w usw.).

Es gibt einige Alternativen, wie Henry Spencer's regular expression libraries.

Kommen Sie zu denken, die Lua Regex-Engine (in String-Bibliothek, Gsub-Implementierung unter anderem) ist wahrscheinlich schnell und klein, wie die Sprache selbst. Es hat seine Macken und Einschränkungen, aber es ist sehr brauchbar.

Das Nebenprojekt LPeg kann eine interessante Alternative zu REs sein, immer noch leicht und doch leistungsstark.

+0

Danke für die Details ... Ich denke, ich werde jetzt mit RESearch.cxx gehen. Es tut, was ich brauche, und es scheint es effizient zu machen. Vielen Dank! –

5

Wenn Sie benötigen keine voll funktionsfähige Regex-Implementierung (und es klingt wie Sie nicht tun), dann der Code geschrieben von Brian Kernighan und Rob Pike in Beautiful Code hervorgehoben wird wahrscheinlich arbeiten Sie braucht. I found a Dr. Dobb's article was ich denke, ist die Entstehung des Codes, der in dem Buch erscheint.