Compartir a través de


regex_replace Function

Replaces coincide con las expresiones regulares.

template<class OutIt, class BidIt, class RXtraits, class Alloc, class Elem>
    OutIt regex_replace(OutIt out,
        BidIt first, BidIt last,
        const basic_regex<Elem, RXtraits, Alloc>& re,
        const basic_string<Elem>& fmt,
        match_flag_type flags = match_default);
template<class RXtraits, class Alloc, class Elem>
    basic_string<Elem> regex_replace(const basic_string<Elem>& str,
        const basic_regex<Elem, RXtraits, Alloc>& re,
        const basic_string<Elem>& fmt,
        match_flag_type flags = match_default);

Parámetros

  • OutIt
    el iterador escrito para los reemplazos.

  • BidIt
    El iterador escrito para subcoincidencias.

  • RXtraits
    Clase de los rasgos para elementos.

  • Alloc
    La clase del asignador de expresiones regulares.

  • Elem
    El tipo de elementos que se va a comparar.

  • flags
    Solicita las coincidencias.

  • first
    Principio de la secuencia que se va a comparar.

  • fmt
    El formato de los reemplazos.

  • last
    Final de la secuencia que se va a comparar.

  • out
    El iterador de salida.

  • re
    La expresión regular que se va a comparar.

  • str
    Cadena que se va a comparar.

Comentarios

La primera función construye un objeto iter(first, last, re, flags) de regex_iterator Class y lo utiliza para dividir el rango de entrada [first, last) en una serie subsecuencias T0M0T1M1...TN-1MN-1TN, donde es la coincidencia Mn de nth detectada por el iterador.Si no se encuentra ninguna coincidencia, T0 es el intervalo de entrada completo y N es cero.Si se utiliza (flags & format_first_only) != 0 únicamente la primera coincidencia, T1 es todo el texto de entrada que sigue la coincidencia, y N es 1.Para cada i en el intervalo [0, N), si (flags & format_no_copy) == 0 se copia el texto del intervalo Ti el iterador out.Llama m.format(out, fmt, flags), donde es el objeto m de match_results devuelto por el objeto iter de iterador para el subsequence Mi.Finalmente, si (flags & format_no_copy) == 0 se copia el texto del intervalo TN el iterador out.la función devuelve out.

La segunda función crea una variable local result de basic_string<charT> escrito y llama a regex_replace(back_inserter(result), str.begin(), str.end(), re, fmt, flags).devuelve result.

Ejemplo

 

// std_tr1__regex__regex_replace.cpp 
// compile with: /EHsc 
#include <regex> 
#include <iostream> 
 
int main() 
    { 
    char buf[20]; 
    const char *first = "axayaz"; 
    const char *last = first + strlen(first); 
    std::regex rx("a"); 
    std::string fmt("A"); 
    std::regex_constants::match_flag_type fonly = 
        std::regex_constants::format_first_only; 
 
    *std::regex_replace(&buf[0], first, last, rx, fmt) = '\0'; 
    std::cout << "replacement == " << &buf[0] << std::endl; 
 
    *std::regex_replace(&buf[0], first, last, rx, fmt, fonly) = '\0'; 
    std::cout << "replacement == " << &buf[0] << std::endl; 
 
    std::string str("adaeaf"); 
    std::cout << "replacement == " 
        << std::regex_replace(str, rx, fmt) << std::endl; 
 
    std::cout << "replacement == " 
        << std::regex_replace(str, rx, fmt, fonly) << std::endl; 
 
    return (0); 
    } 
 
  

Requisitos

encabezado: <regex>

espacio de nombres: std

Vea también

Referencia

<regex>

regex_match Function

regex_search Function