reguläre Ausdrücke in C-Programm
-
Hallo!
Ich habe die Bibliothek PCRE runtergeladen, um mit Hilfe von regulären Ausdrücken in Strings Muster zu ersetzen. Ich habe gesehen, man kompiliert im C-Programm mit dem Befehl pcre_compile den regulären Ausdruck und sucht dann im String mit pcre_exec. Aber wie ersetze ich in einem String das Muster mit dieser Bibliothek? Ich habe den Befehl preg_replace im Internet gefunden. Aber funktioniert der auch in einem normalen C-Programm (C99) oder nur in der Umgebung PHP? Vielen Dank schon einmal für jede Art von Hilfe.
Jesse
-
Schon mal hier rein geschaut? http://www.pcre.org/pcre.txt
Da steht alles drin.
-
Danke dir!
Da muss ich mich durchkämpfen. preg_replace scheint nicht vorzukommen aber es gibt einen Befehl fürs Ersetzen.
-
Hier ist noch eine Alternative. Damit habe ich gute Erfahrungen gemacht:
http://www.codeproject.com/Articles/12595/GRETA-How-to-use-Regular-Expressions-in-Visual-C-c
-
Du weisst aber schon das Visual C++ weder normales C++ noch C ist, oder?
-
Es gibt einen C pluplus Wrapper mit #include <pcrecpp.h>, der einen Replacebefehl liefert. Ich möchte eine Funktion schreiben, um HTML zu parsen in Klartext. Gibt es dafür keine einfachen C-Befehle (C99)? Oder doch nur C plusplus und mit regulären Ausdrücken?
-
kjesse schrieb:
Ich möchte eine Funktion schreiben, um HTML zu parsen in Klartext.
Du kannst mit Regex kein HTML parsen! Das geht nicht! HTML ist keine reguläre Sprache! Siehe http://stackoverflow.com/a/1732454
libxml2 hat zB einen HTML4 parser http://xmlsoft.org/
-
rüdiger schrieb:
kjesse schrieb:
Ich möchte eine Funktion schreiben, um HTML zu parsen in Klartext.
HTML ist keine reguläre Sprache!
Die regulären Ausdrücke heutzutage können aber weit mehr als reguläre Sprachen. Ich kenne z.B. spontan gerade keine Skriptsprache bei der man keine Palindrome matchen kann. Ok, vielleicht AWK.
-
Danke für den Hinweis mit dem libxml2. Ich war heute beim Googlen auch darauf gestoßen. Die Bibliothek ist in C geschrieben und es gibt Testprogramme in C.