PCRE
-
Hi,
Wie kann ich PCRE in einem C++ Programm verwenden? (Original-PCRE-Sourcen)
Ich möchte nämlich die (PHP-)Funktionen preg_match[_all] und preg_replace verwenden.
Wie muss ich die Sourcen kompilieren, und wie in ein Programm einbinden und ausprobieren? Kennt jmd ein nützliches HowTo oder kann mir das hier wer erklären?P.S.: Es sollte keine dll werden, also PCRE "fest" in die Datei einkompiliert werden.
MfG, Andreas
-
Hallo,
das geht z. B. mit Boost:
http://www.boost.org/libs/regex/doc/Gibt aber auch andere, kleinere Libs dafür.
-
CarstenJ: Darum gings ihm nicht.
-
willst du jetzt eine dll statisch linken, oder wie jetz?
-
cppcluster schrieb:
(Original-PCRE-Sourcen) ... Es sollte keine dll werden ...
DocJunioR schrieb:
willst du jetzt eine dll statisch linken, oder wie jetz?
@php: Auch wenn es nicht um das Mittel boost::regex ging, ging höchst wahrscheinlich dennoch um den Zweck, den es erfüllt. Ich finde es nicht falsch, das vorzuschlagen, was zum Mittel C++ am besten passt.
-
Man kann auch die Doku von PCRE runterladen, wo auch der build-Vorgang dokumentiert ist. http://gnuwin32.sourceforge.net/packages/pcre.htm
-
lesefehler schrieb:
@php: Auch wenn es nicht um das Mittel boost::regex ging, ging höchst wahrscheinlich dennoch um den Zweck, den es erfüllt. Ich finde es nicht falsch, das vorzuschlagen, was zum Mittel C++ am besten passt.
Dabei sollte dann aber nicht unerwähnt bleiben, das PCRE (und eben auch PHP) Named Subpatterns unterstützt, eine sehr nützliche Erweiterung aus Python, die Reguläre Ausdrücke verständlicher und vor allem wartbarer macht. Dieses nette Feature bringt boost::regex leider nicht mit. (Es hat schon lange gedauert bis der boost::regex Author endlich bereit war, case-sensitivitäts Umschaltungen im Ausdruck mittels '(?i:...)' zu unterstützen.)
boost::regex ist also bei aller boost-Freundschaft mitnichten ein vollständiger Ersatz für die mittels PCRE implementierten PHP-Funktionen.
-
lesefehler schrieb:
Ich will kein PHP compilieren..
Ich will lediglich die pcre_match & pcre_replace - Funktionen.lesefehler schrieb:
Man kann auch die Doku von PCRE runterladen, wo auch der build-Vorgang dokumentiert ist. http://gnuwin32.sourceforge.net/packages/pcre.htm
Meinst du das > http://gnuwin32.sourceforge.net/install.html <? Ich sehe nicht wirklich Anweisungen für einen Compiler..
KleinerUnterschied schrieb:
Dabei sollte dann aber nicht unerwähnt bleiben, das PCRE (und eben auch PHP) Named Subpatterns unterstützt, eine sehr nützliche Erweiterung aus Python, die Reguläre Ausdrücke verständlicher und vor allem wartbarer macht.
Ähm, was sind Named Subpatterns? Ich möchte einfach, dass z.b.
/<a>(.*)<\/a>/im string
Ein Link:<a>Test</a>das "Test" matched.
mfG, Andreas
-
ich meinte eigentlich den Link, der neben Documentation steht. Diesen hier: http://prdownloads.sourceforge.net/gnuwin32/pcre-6.3-doc.zip?download
Und falls du sie nicht gefunden hast, da sind die boost::regex Beispiele, wo auch Sachen mit URL-Matching dabei sind: http://www.boost.org/libs/regex/doc/examples.html
-
lesefehler schrieb:
ich meinte eigentlich den Link, der neben Documentation steht. Diesen hier: http://prdownloads.sourceforge.net/gnuwin32/pcre-6.3-doc.zip?download
Ja, da sind die build-Funktionen dokumentiert. z.b. --disable-cpp etc. Ich konnte leider nichts brauchbares finden..
lesefehler schrieb:
Und falls du sie nicht gefunden hast, da sind die boost::regex Beispiele, wo auch Sachen mit URL-Matching dabei sind: http://www.boost.org/libs/regex/doc/examples.html
Ich _will_ keine Libs von "Drittanbeitern", zum einen weil's sowieso schon beim Installieren fehler gab, zum anderen weil die wahrscheinlich nicht aktuell sind, zum dritten weil PHP die originalen Sourcen hat und nicht boost o.Ä.
mfG, Andreas