$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Eric Niebler (eric_at_[hidden])
Date: 2008-03-16 18:44:47
Eric Niebler wrote:
> 
> The formatter can be a function object, or even just a plain function. 
> So, for instance, you can do this:
> 
>    map<string,string> replacements;
> 
>    string my_format(smatch const &what)
>    {
>        return replacements[what[0].str()];
>    }
> 
>    int main()
>    {
>        string input = ...;
>        sregex rx = ...;
>        string output = regex_replace(input, rx, my_format);
>    }
> 
I've made a small addition ... the formatter can be a lambda, too, if 
you #include <boost/xpressive/regex_actions.hpp>. The above can now be 
written simply as:
   using xpressive::ref;
   string output = regex_replace(input, rx, ref(replacements)[_]);
Here, "_" gets substituted with a sub_match representing the current 
match. You can also use s1, s2, etc., to access the other sub-matches.
-- Eric Niebler Boost Consulting www.boost-consulting.com