# RegExp - Reguläre Ausdrücke für C/C++?



## Prophet05 (28. Juli 2005)

Gibt es in der C++ standard Bibliothek einen Header welcher Funktionen beinhaltet welche Strings mit hilfe Regulärer Ausdrücke untersuchen beziehungsweise verändern können?

  Ich denke da an Funktionen wie preg_match oder preg_replace ind PHP.

  mfg Prophet05


----------



## uhu01 (28. Juli 2005)

Hy!

Nein, in den Standart Librarys sind Regexe nicht vorhanden, allerdings gibt es einige externe Librarys dafür, z.B. in der Boost Library ist eine Regex-Klasse vorhanden.

mfg
uhu01


----------



## Prophet05 (28. Juli 2005)

Ja von der habe ich bereits gehört aber ich dachte mehr an einfache Funktionen. Oder gibt es Librarys mit einfachen Funktionen, dazu nicht?

 MfG Prophet05


----------



## uhu01 (28. Juli 2005)

Hy!

Ich kenne keine "einfachen" Funktionen die Regex Unterstützung bieten, und denke auch nicht das du was für c++ finden wirst das nicht in eine Klasse verpackt ist. Schau dir die Regex Klasse aus der Boost mal an, ist relativ einfach zu benutzen.
Siehe Beispiel 

mfg
uhu01


----------



## Prophet05 (28. Juli 2005)

Verstehe ich das Beispiel richtig so wird am begin eine Arte "Datei-Karte" erstellt. Aus die wird dan nachrer der Ausdruck angewandt. Mit einer Deutschen übersetzung wäre es auch kein problem für mich mich dort reinzulesen. Ich kann zwar gut englisch aber die ganzen Fachbegriffe Iritieren doch sehr. Ich werde mal gucken ob ih das verstehe.


----------



## KristophS (28. Juli 2005)

Hierdrauf verweist die offizielle PCRE-Seite, wenn man unter C++ wrappers schaut. In den einzelnen Datein findest du wiederum Verweise auf diverse Implementierungen.


----------



## Prophet05 (29. Juli 2005)

Hey Danke! Das hört sich super an.Aber entschuldige die dumme frage was sind *.sig oder *.gz Dateien? Also was muss ich mit denen machen?


----------



## deepthroat (29. Juli 2005)

Hi.

Tip: http://www.endungen.de

.gz Dateien sind komprimierte Dateien, die man mit einem Entpackprogramm entpacken kann (z.B. 7-zip).

.sig Dateien sind digitale Unterschriften mit denen man kontrollieren kann ob die Datei die man runtergeladen hat (man braucht dann 2 Dateien, z.B. a.exe und a.exe.sig) auch wirklich von demjenigen ist, der dort genannt ist um sicherzustellen, dass niemand die Datei auf dem Server heimlich austauscht. Dazu braucht man dann den öffentlichen Schlüssel desjenigen aus einer vertrauenvollen Quelle und kann dann mit mit einem Programm wie GnuPG überprüfen ob die Signatur echt ist.


----------



## Prophet05 (29. Juli 2005)

Okey danke!


----------



## mueslirocker (4. August 2005)

Hallo,

ich bin vor kurzem auf das gleiche Problem gestoßen und wollte mich also auch mal zu Wort melden.  
Da ich Perl mit all seinen Möglichkeiten bei Matching Patterns mag, hab ich versucht, Perl-Code in C(++) einzubinden.
Besonders mag ich die Klammerung von RegEx, nach denen dann Variablen ($1, $2,..) erstellt werden, mit denen man auf Teile eines großen Ausdrucks zugreifen kann.

Ich bin eben auf CPerlWrap gestoßen. Sieht sehr vielversprechend aus, finde ich.
Man erzeugt eine Instanz und kann dann einfach Variablen im- und exportieren und Perl-Code ausführen.
Man braucht zwar auf der Build-Machine Perl, aber wohl nicht auf der Target-Machine.
Leider ist das Ding für MFC gedacht.
Ich will aber nichts für Windows(only) schreiben... ich brauch nichtmal 'n GUI.
Gibt es etwas ähnliches für... für was eigentlich? Für normales C bzw C++ ohne MFC?

Ich konnte leider noch nicht mit CPerlWrap rumspielen, da ich hier nichts testen kann, aber vielleicht kann man die Klasse auch einfach umschreiben..


----------



## Prophet05 (4. August 2005)

Ja das ist ganz schön komisch ich habe mir das beriets bei den anderen sachen angeschaut aber alle machen es immer in einer Klasse bei der man hundert schritte machen muss bevor man wirklich sein pattern einsetzen kann. Geht das nicht auch einfacher...

 mfg Prophet05


----------



## mueslirocker (4. August 2005)

Naja, dieses CPerlWrap sieht da sehr gut aus.
Nach der "Anleitung" ist es außer der Instanzierung wirklich nichts weiter als ein Aufruf mit dem Script.. naja, und eine Funktion zum im- und exportieren von Variablen (pro Variablentyp).
Das klingt für mich sehr schön einfach.
Wenn ich das Ding nur ohne MFC zum Laufen kriegen würde...


----------

