Zum Inhalt springen

regex_match aus boost::lib will nicht so wie ich


Empfohlene Beiträge

Hallo!

nach langem hin und her habe ich mir für meinen Borland C++ Builder 6.0 die Regex.Lib von Boost installiert. Jetzt benutzt man ja die Funktion regex_match() um vergleiche durchzuführen.

ich habe folgende Begrifflichkeiten:

- recklinghsn orthlostr nr 190

- recklinghausen

Nun Ziel ist es zu schauen ob "recklinghausen" in dem ersten String steht. Hierzu prüfe ich im ersten durchlauf mit:

recklinghausen[a-z|0-9].*

weil das natürlich kein match ergibt, muss der String gekürzt werden auf recklinghause, recklinghaus usw.

DANN, wenn der Punkt "recklingh[a-z|0-9].*" erreicht ist, gibt es immernoch kein Match - obwohl es doch so sein sollte oder? Der Regex Coach findet den Ausdruck auch klasse :cool: Oder ist mein Ausdruck doch falsch?

Die alte Edit:

ein weiteres Highlight meines Codes ist, dass nach dem oben genannten String kein vergleich mehr ein match hervorbringt. Obwohl Strings mit dem gleichen Aufbau, wie die vorher gematchten, geprüft werden... naja aber dazu müsst man wahrscheinlich meinen ganzen Code haben - das wäre hier etwas viel. Ich hab das Prob mit dem Debugger auf regex_match eingegrenzt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Oklino']kommt schon leute :( HIIILFEEEE
Bitte kein Threadpushing -> Siehe Boardregeln :mod:

muss man irgendwas beachten bei der Verwendung von regex_match()? was weiß ich... speicherbereich mit irgendeiner anderen funktion wieder freigeben oder ... ja keine ahnung... :confused:
Man könnte natürlich in die Dokumentation schauen. Da du leider nicht verraten hast, mit welchen Parametern du regex_match aufrufst - gerade die Flags wären interessant gewesen - kann man nur raten:

Schließ dein Pattern doch einfach mal in Slashes ein: /recklingh[a-z|0-9].*/

Link zu diesem Kommentar
Auf anderen Seiten teilen

oh ja selbstvertändlich... sorry:


strE = strListOrte->Strings[0].c_str(); //recklingh[a-z| |0-9].*

s = dinohsname.c_str();                    //recklinghausen orthlostr nr 160

static const boost::regex e(strE);

bMatch = regex_search(s, e);

das ist der ganze Code für den Abgleich. Werde mal das mit dem / ausprobieren

EDIT: hmm in slashes einschließen klappte auch nicht. Die Dokumentation habe ich "versucht" hinzu zu ziehen, aber da meine Englischkenntnisse dafür leider nicht ausreichen, habe ich arge Verständnisprobleme mit der regex doku :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...