Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 09, 2025 18:33

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Regular Expressions..
BeitragVerfasst: Di Nov 10, 2009 17:08 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich bräuchte demnächst reguläre ausdrücke für mein programm und stehe da jetzt vor der qual der wahl... eine fertige lib nehmen oder selbst basteln... :)

Kennt irgendwer eine gute library (lizenz frei oder zumindest eine gescheite lizenz die keine ansprüche stellt xD) dafür..?
Natürlich in C++..


Was für mich wieder gegen die fremd-lib spricht ist diesmal nicht der wille es selbst zu machen aus lernzwecken, als vielmehr:

Alle libs die ich bisher gefunden habe nutzen meist entweder char*, std::string oder std::wstring.. da ich aber meine eigene String-klasse habe, wäre es äusserst unpraktisch das ständig in wstring rum zu convertieren etc.. und Unicode sollte die lib aufjedenfall können!


Wenn es eine lib gäbe die gut anpassbar ist, sprich der Source nicht so mega umfangreich ist könnte ich die prinzipiell einfach für meine String klasse umschreiben.. also falls jemand so eine kennt, bitte sagen :)

Ansonsten.. hat schon jemand erfahrung damit sowas selbst zu schreiben? Ich stelle mir das durchaus kompliziert vor.. oder gibt es da nen recht simplen trick wie man eine RegExp parsed..?

Bin für tipps jeglicher art offen.. :)

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Regular Expressions..
BeitragVerfasst: Di Nov 10, 2009 17:20 
Offline
DGL Member

Registriert: Sa Mär 14, 2009 17:48
Beiträge: 99
Programmiersprache: D, Java, C++
Reguläre Ausdrücke werden ja durch eine Reguläre Sprache (http://de.wikipedia.org/wiki/Regul%C3%A4re_Sprache) beschrieben, diese sind mithilfe eines Automaten (http://de.wikipedia.org/wiki/Automat_%28Informatik%29) recht einfach zu parsen.

Ich vermute du magst PCRE (http://de.wikipedia.org/wiki/PCRE) nutzen, dass erste was du also machen müsstest wäre die Grammatik der Sprache herauszufinden.

Aus dieser kannst du dann einen endlichen Automaten ableiten, am besten den malt man sich erstmal auf. Wenn das erledigt ist, ist es ein leichtes daraus code zu zaubern, denn Autmaten können immer auf die gleiche Art und Weise umgesetzt werden.

Das wirklich problematische an der Sache ist die Optimierung, eigentlich möchte man reguläre Ausdrücke kompilieren, und nicht immer neu parsen, dabei müsste man dann natürlich von der regulären vorgehensweise des umsetztens einer Regulären Sprache abweichen.

Hoffe ich konnte ein bisschen helfen.

Grüße,
Skeptiker


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Regular Expressions..
BeitragVerfasst: Di Nov 10, 2009 17:50 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Die Boost-Library hat unter anderem auch reguläre Ausdrücke. Wir sieht den deine String-Klasse intern aus? Wird doch letztlich auch nur ein Char-Pointer und eine Länge sein, oder? Du musst nur dafür sorgen das der Anwender direkt darauf arbeiten kann, std::string hat ja auch eine Methode c_str() für solche Fälle.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Regular Expressions..
BeitragVerfasst: Di Nov 10, 2009 17:56 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hey,

Coolcat hat geschrieben:
Die Boost-Library hat unter anderem auch reguläre Ausdrücke. Wir sieht den deine String-Klasse intern aus? Wird doch letztlich auch nur ein Char-Pointer und eine Länge sein, oder? Du musst nur dafür sorgen das der Anwender direkt darauf arbeiten kann, std::string hat ja auch eine Methode c_str() für solche Fälle.


boost möchte ich nicht nutzen.. die library ist mir definitiv zu groß und zu umfangreich.

Meine String-klasse intern arbeitet mit UTF-32, also direkt mit Unicode-IDs.. macht in dem moment wo man viel mit fremd-libs arbeitet wenig sinn weil man dann ständig nach UTF-8, bzw ASCII convertieren darf.. aber bei mir arbeitet intern komplett alles direkt mit Unicode-IDs, insofern ist es das optimalste.

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]