22 May
2006
22 May
'06
11:53 a.m.
Hi, I'd like to replace all parts of a string with the results of calling a function, passing the match as a parameter. Some pseudo-code: --- std::string replacer(smatch& s) { return std::getenv(s[1].c_str()); } std::string const input = "This is ${USER} on ${HOST}"; boost::regex const re("\\$\\{([^\\}]+)\\}"); std::string result = boost::regex_replace(input, re, boost::bind(&replacer)); assert("This is Me on MyWorkstation" == result); --- (I'm sure there are errors above, but I hope you get the general idea). Any easy way to do something similar? // Johan