PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RegEx für C++



lagalopex
21-08-2006, 17:05
Ich habe bereits hier im Forum und bei google gesucht. Gefunden habe ich bisher folgendes:
boost (http://boost.org/) (wurde hier ja häufig erwähnt...)
tre (http://laurikari.net/tre/)

Unter Gentoo sind alle beide offiziell im Portage, wie sieht es da grundsätzlich aus? Gibt es einen Favoriten? Welche werden am häufigsten genutzt? (algm und evtl bei euch im Speziellen) Gibt es vielleicht noch andere/bessere Bibliotheken?

Die Lib müsste auf match testen und Ersetzungen vornehmen können. (s/bla \([0-9]*\) blub/\1/g)

Es wäre natürlich schön, wenn in C++ die ANSI string Klasse benutzt werden könnte.

locus vivendi
21-08-2006, 17:39
Gibt es vielleicht noch andere/bessere Bibliotheken?
Ich kann nicht aus eigener Erfahrung sprechen, und will auch nicht andeuten das sie besser wäre, aber Greta soll für kurze Strings schneller sein als die Boostbibliothek.
http://research.microsoft.com/projects/greta/
Dann gibt es von einem der Autoren auch noch Xpressive, die vermutlich Teil von Boost werden wird. Könnte gut sein, dass das eine Art Nachfolger von Greta ist.
http://boost-sandbox.sourceforge.net/libs/xpressive/doc/html/index.html
Ich weiß nicht ob diese Seite die aktuellste zu Xpressive ist, du müsstest da evtl. mal selber recherchieren.

Thomas Engelke
23-08-2006, 14:22
Du könntest es mit PCRE (http://www.pcre.org) (Perl compatible regular expressions) versuchen.

TME

Christoph
23-08-2006, 16:25
Nicht zu vergessen sind ntürlich die bei Linux mitgelieferten RegEx Funktionen: re_comp regcomp usw.

Die stehen allerdings nicht unter Windows zur Verfügung.

lagalopex
27-08-2006, 13:02
Wow, wusste garnicht, dass Linux das schon hat... gibt es denn einen Wrapper etc für Windows, damit die Funktionen auch unter Windows auf eine (andere?) RegEx-Lib angebildet werden können?
(Um ein solches Linux-Projekt evtl auch leicht auf Windows zu übertragen, bzw gleich portabel zu machen.)

mcspam
27-08-2006, 13:27
Hallo,

ich habe schon sehr gute Erfahrungen mit http://www.gentoo-portage.com/dev-libs/pcre++ gemacht.

Gruß

locus vivendi
27-08-2006, 14:03
Wow, wusste garnicht, dass Linux das schon hat... gibt es denn einen Wrapper etc für Windows, damit die Funktionen auch unter Windows auf eine (andere?) RegEx-Lib angebildet werden können?
Also diese Funktionen sind nicht nur auf Linux vorhanden, sondern durch Posix spezifiziert. Anhand deiner Eingangsfrage hätte ich auch gedacht, dass du die bereits kennst, weil du nach besseren Bibliotheken gefragt hast. Ich habe das so verstanden das du mit "Bordmitteln" nicht zufrieden bist.

Langer Rede kurzer Sinn: Wenn du sowieso einen Wrapper verwenden willst (verständlich), dann kannst du auch gleich Boost.Regex benutzen. Die ist schön einfach zu benutzen. Außerdem arbeitet sie vernünftig mit std::string zusammen, wonach du ja auch gefragt hast.