-TBB- Oklino Geschrieben 10. März 2006 Geschrieben 10. März 2006 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. Zitieren
-TBB- Oklino Geschrieben 10. März 2006 Autor Geschrieben 10. März 2006 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: Zitieren
Klotzkopp Geschrieben 10. März 2006 Geschrieben 10. März 2006 Oklino']kommt schon leute HIIILFEEEEBitte 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].*/ Zitieren
-TBB- Oklino Geschrieben 10. März 2006 Autor Geschrieben 10. März 2006 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 Zitieren
Empfohlene Beiträge
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.