Namespaces
Variants

std::match_results<BidirIt,Alloc>:: format

From cppreference.net
Regular expressions library
Classes
(C++11)
Algorithms
Iterators
Exceptions
Traits
Constants
(C++11)
Regex Grammar
template < class OutputIt >

OutputIt format ( OutputIt out,
const char_type * fmt_first, const char_type * fmt_last,
std:: regex_constants :: match_flag_type flags =

std:: regex_constants :: format_default ) const ;
(1) (desde C++11)
template < class OutputIt, class ST, class SA >

OutputIt format ( OutputIt out,
const basic_string < char_type,ST,SA > & fmt,
std:: regex_constants :: match_flag_type flags =

std:: regex_constants :: format_default ) const ;
(2) (desde C++11)
template < class ST, class SA >

std:: basic_string < char_type,ST,SA >
format ( const std:: basic_string < char_type,ST,SA > & fmt,
std:: regex_constants :: match_flag_type flags =

std:: regex_constants :: format_default ) const ;
(3) (desde C++11)
string_type format ( const char_type * fmt_s,

std:: regex_constants :: match_flag_type flags =

std:: regex_constants :: format_default ) const ;
(4) (desde C++11)

format genera una cadena de formato, reemplazando cualquier especificador de formato o secuencia de escape en esa cadena con datos de coincidencia de * this .

1) La secuencia de caracteres de formato está definida por el rango [ fmt_first , fmt_last ) . La secuencia de caracteres resultante se copia a out .
2) La secuencia de caracteres de formato está definida por los caracteres en fmt . La secuencia de caracteres resultante se copia a out .
3,4) La secuencia de caracteres de formato está definida por los caracteres en fmt y fmt_s respectivamente. La secuencia de caracteres resultante se copia a un std::basic_string recién construido, el cual es devuelto.

La flags máscara de bits determina qué especificadores de formato y secuencias de escape son reconocidos.

El comportamiento de format es indefinido si ready ( ) ! = true .

Contenidos

Parámetros

fmt_begin, fmt_end - punteros a un rango de caracteres que definen la secuencia de caracteres de formato
fmt - std::basic_string que define la secuencia de caracteres de formato
fmt_s - puntero a una cadena de caracteres terminada en nulo que define la secuencia de caracteres de formato
out - iterador al que se copia la secuencia de caracteres resultante
flags - std::regex_constants::match_flag_type máscara de bits que especifica qué especificadores de formato y secuencias de escape son reconocidos
Requisitos de tipo
-
OutputIt debe cumplir con los requisitos de LegacyOutputIterator .

Valor de retorno

1,2) out
3,4) La cadena recién construida que contiene la secuencia de caracteres resultante.

Excepciones

Puede lanzar excepciones definidas por la implementación.

Ejemplo

#include <iostream>
#include <regex>
#include <string>
int main()
{
    std::string s = "for a good time, call 867-5309";
    std::regex phone_regex("\\d{3}-\\d{4}");
    std::smatch phone_match;
    if (std::regex_search(s, phone_match, phone_regex))
    {
        std::string fmt_s = phone_match.format(
            "$`"   // $` significa caracteres antes de la coincidencia
            "[$&]" // $& significa los caracteres coincidentes
            "$'"); // $' significa caracteres después de la coincidencia
        std::cout << fmt_s << '\n';
    }   
}

Salida:

for a good time, call [867-5309]

Véase también

reemplaza ocurrencias de una expresión regular con texto de reemplazo formateado
(plantilla de función)
opciones específicas para coincidencia
(typedef)