...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::xpressive::regex_replace — Build an output sequence given an input sequence, a regex, and a format string or a formatter object, function, or expression.
// In header: <boost/xpressive/regex_algorithms.hpp> template<typename OutIter, typename BidiIter, typename Formatter> OutIter regex_replace(OutIter out, BidiIter begin, BidiIter end, basic_regex< BidiIter > const & re, Formatter const & format, regex_constants::match_flag_type flags = regex_constants::match_default, unspecified = 0); template<typename OutIter, typename BidiIter> OutIter regex_replace(OutIter out, BidiIter begin, BidiIter end, basic_regex< BidiIter > const & re, typename iterator_value< BidiIter >::type const * format, regex_constants::match_flag_type flags = regex_constants::match_default); template<typename BidiContainer, typename BidiIter, typename Formatter> BidiContainer regex_replace(BidiContainer & str, basic_regex< BidiIter > const & re, Formatter const & format, regex_constants::match_flag_type flags = regex_constants::match_default, unspecified = 0); template<typename BidiContainer, typename BidiIter, typename Formatter> BidiContainer regex_replace(BidiContainer const & str, basic_regex< BidiIter > const & re, Formatter const & format, regex_constants::match_flag_type flags = regex_constants::match_default, unspecified = 0); template<typename Char, typename Formatter> std::basic_string< typename remove_const< Char >::type > regex_replace(Char * str, basic_regex< Char * > const & re, Formatter const & format, regex_constants::match_flag_type flags = regex_constants::match_default, unspecified = 0); template<typename BidiContainer, typename BidiIter> BidiContainer regex_replace(BidiContainer & str, basic_regex< BidiIter > const & re, typename iterator_value< BidiIter >::type const * format, regex_constants::match_flag_type flags = regex_constants::match_default, unspecified = 0); template<typename BidiContainer, typename BidiIter> BidiContainer regex_replace(BidiContainer const & str, basic_regex< BidiIter > const & re, typename iterator_value< BidiIter >::type const * format, regex_constants::match_flag_type flags = regex_constants::match_default, unspecified = 0); template<typename Char> std::basic_string< typename remove_const< Char >::type > regex_replace(Char * str, basic_regex< Char * > const & re, typename add_const< Char >::type * format, regex_constants::match_flag_type flags = regex_constants::match_default);
Constructs a
object: regex_iterator
, and uses regex_iterator
< BidiIter > i(begin, end, re, flags)i
to enumerate through all of the matches m of type
that occur within the sequence match_results
< BidiIter >[begin, end)
. If no such matches are found and !(flags & format_no_copy)
then calls std::copy(begin, end, out)
. Otherwise, for each match found, if !(flags & format_no_copy)
calls std::copy(m.prefix().first, m.prefix().second, out)
, and then calls m.format(out, format, flags)
. Finally if !(flags & format_no_copy)
calls std::copy(last_m.suffix().first, last_m.suffix().second, out)
where last_m
is a copy of the last match found.
If flags & format_first_only
is non-zero then only the first match found is replaced.
Parameters: |
|
||||||||||||
Requires: |
Type Type Type
|
||||||||||||
Returns: |
The value of the output iterator after the output sequence has been written to it. |
||||||||||||
Throws: |
regex_error on stack exhaustion or invalid format string. |