boost ( ja, es läuft :D )::regex_replace unbekannter Parameter
-
Hi,
nachdem Boost bei mir endlich läuft (danke nochmal besonders an Atchi), habe ich auch gleich schon eine Frage zu dem oben genannten Templateemplate <class traits, class charT> basic_string<charT> regex_replace(const basic_string<charT>& s, const basic_regex<charT, traits>& e, const basic_string<charT>& fmt, match_flag_type flags = match_default);(link: http://boost.org/libs/regex/doc/regex_replace.html)
Wozu ist hier der fmt string? Ich meine, ich übergebe den string s, mit der expression e und erhalte einen string zurück. Das reicht doch normalerweise (zumindest in Perl und PHP). Wozu brauch ich hier noch einen String?
Wäre nett wenn mich jemand aufklären könnte

-
was sagst du dazu:
#include <boost/regex.hpp> #include <string> #include <iostream> int main() { std::string inputString = "123456"; boost::regex e("(^\\d{1})(\\d{2})(\\d{3})$"); std::string fmt("$1-$2 $3"); std::cout << boost::regex_replace(inputString, e, fmt, boost::match_default) << std::endl; }
-
dazu sage ich: Danke!

edit:
Ich war wohl etwas vorschnell.Ich möchte von einer URL das http:// wegmachen. Also dachte ich mir folgendes:
string _URL = "http://test.de"; boost::regex re("(^html://)(.*)$"); string fmt = "$2"; cout << boost::regex_replace(_URL, re, fmt, boost::match_default) << endl;Klappt nur leider nicht. An der re kann es aber eigentlich nicht liegen?
-
doch es liegt gerade an deine re

so muss sein:
[cpp]boost::regex re("(^http://)(.*)$");[/cpp]
-
...
was soll man dazu sagen?

Danke.