Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

kommt schon leute :( HIIILFEEEE

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:

Geschrieben
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].*/

Geschrieben

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 :(

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...