Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Function regex_replace

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.

Synopsis

// In header: <boost/xpressive/regex_algorithms.hpp>


template<typename OutIter, typename BidiIter, typename Formatter> 
   ( out,  begin,  end, 
                        basic_regex<  re, 
                         format, 
                         flags = , 
                         = );
template<typename OutIter, typename BidiIter> 
   ( out,  begin,  end, 
                        basic_regex<  re, 
                         format, 
                         flags = );
template<typename BidiContainer, typename BidiIter, typename Formatter> 
   
  ( str, basic_regex<  re, 
                 format, 
                 flags = ,  = );
template<typename BidiContainer, typename BidiIter, typename Formatter> 
   
  ( str, basic_regex<  re, 
                 format, 
                 flags = ,  = );
template<typename Char, typename Formatter> 
   
  ( str, basic_regex<  re, 
                 format, 
                 flags = ,  = );
template<typename BidiContainer, typename BidiIter> 
   
  ( str, basic_regex<  re, 
                 format, 
                 flags = ,  = );
template<typename BidiContainer, typename BidiIter> 
   
  ( str, basic_regex<  re, 
                 format, 
                 flags = ,  = );
template<typename Char> 
   
  ( str, basic_regex<  re, 
                 format, 
                 flags = );

Description

Constructs a regex_iterator object: regex_iterator< BidiIter > i(begin, end, re, flags), and uses i to enumerate through all of the matches m of type match_results< BidiIter > that occur within the sequence [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:

begin

The beginning of the input sequence.

end

The end of the input sequence.

flags

Optional match flags, used to control how the expression is matched against the sequence. (See match_flag_type.)

format

The format string used to format the replacement sequence, or a formatter function, function object, or expression.

out

An output iterator into which the output sequence is written.

re

The regular expression object to use.

Requires:

Type BidiIter meets the requirements of a Bidirectional Iterator (24.1.4).

Requires:

Type OutIter meets the requirements of an Output Iterator (24.1.2).

Requires:

Type Formatter models ForwardRange, Callable<match_results<BidiIter> >, Callable<match_results<BidiIter>, OutIter>, or Callable<match_results<BidiIter>, OutIter, regex_constants::match_flag_type>; or else it is a null-terminated format string, or an expression template representing a formatter lambda expression.

Requires:

[begin,end) denotes a valid iterator range.

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.

PrevUpHomeNext