Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Reguläre ausdrücke in C++

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.08.2009, 10:28 Uhr
xyz



Hallo,
sind Reguläre Ausdrücke in C++ 100 % kompatibel zur Perl oder braucht man eine spezielle Bibliothek?

Viele Grüße
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.08.2009, 23:37 Uhr
Hans
Library Walker
(Operator)


Hi,

die Kurzantwort ist: Nein und Ja.
Ausführlicher: Reguläre Ausdrücke sind in C++ nicht 100%ig kompatibel zu Perl, d.h. Du bruchst spezielle Bibliotheken, wo sie implementiert sind. Beispielsweise PCRE (=Perl Compatible Regular Expressions) oder wenn es richtig C++ sein soll, Boost.Regex.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.08.2009, 08:20 Uhr
xyz



Danke.

Ich habe noch herausgefunden, dass es für PCRE ein C++ wrapper (pcrecpp) von Google gibt der aber schon in PCRE enthalten sein soll. Es soll möglich sein "const char*" oder "string" zu verwenden ( www.gammon.com.au/pcre/pcrecpp.html ).

Leider verstehe ich nicht warum Google nicht Boost verwendet oder ist nicht möglich "const char*" oder "string" zu verwenden oder gibt es andere nachteile?

Ich habe noch QRegExp gefunden welches auf Qstring basiert und ich weiss nicht ob man auch "const char*" oder "string" übergeben kann.

Anscheind ist es nicht so einfach Reguläre ausdrücke aus Perl zu kopieren und in:

* PCRECPP ( www.gammon.com.au/pcre/pcrecpp.html#SEC7 ) oder
* Boost ( www.boost.org/doc/libs/1_40_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html )
* QRegExp ( http://doc.trolltech.com/4.5/qregexp.html#notes-for-perl-users )

einzufügen.

Gibt es zwischen pcrecpp, Boost, QRegExp Geschwindigkeit Unterschiede?

Mit welcher Biblothek hat man weniger Probleme?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.09.2009, 09:49 Uhr
xyz



Ich habe hier
( http://webloria.loria.fr/~szathmar/off/projects/java/Perl2Java_regexp_tutorial/index.php )
eine Gegenüberstellung von Perl und Java gefunden.

Gibt es sowas ähnliches für Boost.Regex, PCRE oder QRegExp?

Dieser Post wurde am 01.09.2009 um 10:05 Uhr von xyz editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.09.2009, 22:50 Uhr
Hans
Library Walker
(Operator)


Hi,

also da muss ich leider passen. So ausführlich hab ich mich mit dem Thema nämlich noch nicht beschäftigt. Möglicherweise hilft dieser Link hier weiter, den ich bei Wikipedia dazu gefunden habe.

Ich wunder mich auch gerade, dass ich hierzu bisher als Einziger geantwortet habe; - gerade zu Boost können andere hier wesentlich mehr schreiben als ich. Schlimmstenfalls machst Du Dir die Arbeit mit dem Gegenüberstellen selbst, und sei es nur anhand der Dokumentationen. Wenn etwas unklar ist, notieren und bei Gelegenheit ausprobieren. Ist zwar 'ne Menge Arbeit, aber dann weist Du hinterher bestens Bescheid.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
04.09.2009, 05:34 Uhr
xyz



Ich habe anderes Beispiel gefunden welchen in PCRE und Boost implementiert ist.
Boost:
http://shootout.alioth.debian.org/u32q/benchmark.php?test=regexdna&lang=gpp&id=1
PCRE:
http://shootout.alioth.debian.org/u32q/benchmark.php?test=regexdna&lang=gcc&id=2

Ich finde die Systax von Boost ist kompliezierter als von PCRE.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
05.09.2009, 00:00 Uhr
xyz



Anscheint gibt es in Boost zwei Versionen von Regulären Ausdrücken (xpressive.hpp und regex.hpp ) wobei die Syntax von regex.hpp ähnlich einfacher ist als die von xpressive.hpp, xpressive.hpp scheint schneller zu sein (
http://shootout.alioth.debian.org/u32q/iofile.php?test=regexdna&file=input )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
05.09.2009, 00:08 Uhr
xyz



http://shootout.alioth.debian.org/u32q/benchmark.php?test=regexdna&lang=gpp&id=3
Warum gibt es in boost zwei Bibliotheken xpressive.hpp und regex.hpp ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
05.09.2009, 01:03 Uhr
0xdeadbeef
Gott
(Operator)


boost.regex wertet reguläre Ausdrücke grundsätzlich zur Laufzeit aus, boost.xpressive ermöglicht zusätzlich das Zusammensetzen von statischen Regex-Parsern, die dann vom Compiler zur Compilezeit zusammengesetzt werden; eine Art boost.spirit light.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: