Problem mit Boost Regex
-
Hallo,
ich habe mich das Wochenende mit regex von Boost gequält und kommen einfach nicht auf die Lösung. Bei dem folgenden Stückchen Code kommen ich nicht auf den Fehler, es wird in der Variabel b immer 0 ausgegeben.
boost::regex ex("123"); string str("inhalt 123"); bool b = boost::regex_match(str, ex); cout << "b=" << b << endl;Ich habe auch schon versucht eine CString zu übergeben, aber auch erhalte ich immer eine 0 als Ergebnis.
Wäre für jede Hilfe dankbar...
Chris
-
Du hast ja auch kein richtigen regulären Ausdruck dort. Mit deinem Ausdruck wird nur geguckt ob der String gleich "123" ist. Wenn du wissen willst ob "123" am Ende des String ist geht das mit ".*123" und wenn es egal ist wo der steht, dann mit ".*123.*". Ein regulärer Ausdruck wird nicht nur bis zu einem Space angewandt, sondern immer auf den ganzen String.
Greetz
-
Danke erstmal das macht Sinn,
ich hatte auch als regex "[iI]nhalt" auf demselben String probiert, auch mit dem Ergebnis 0. Wenn ich zuhause bin werde ich mal Ausdruck und String gleichsetzen, so müsste ich doch auf jeden Fall ein true zurückbekommen, oder?
Gruß Chris
-
justchris schrieb:
Wenn ich zuhause bin werde ich mal Ausdruck und String gleichsetzen, so müsste ich doch auf jeden Fall ein true zurückbekommen, oder?
Macht nicht viel Sinn, aber genau so ist es.

(String == Ausdruck) = trueGreetz