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) (depuis 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) (depuis 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) (depuis C++11)
string_type format ( const char_type * fmt_s,

std:: regex_constants :: match_flag_type flags =

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

format génère une chaîne de format, en remplaçant tout spécificateur de format ou séquence d'échappement dans cette chaîne par les données de correspondance de * this .

1) La séquence de caractères de format est définie par la plage [ fmt_first , fmt_last ) . La séquence de caractères résultante est copiée vers out .
2) La séquence de caractères de format est définie par les caractères dans fmt . La séquence de caractères résultante est copiée vers out .
3,4) La séquence de caractères de format est définie par les caractères dans fmt et fmt_s respectivement. La séquence de caractères résultante est copiée vers une std::basic_string nouvellement construite, qui est retournée.

Le flags bitmask détermine quels spécificateurs de format et séquences d'échappement sont reconnus.

Le comportement de format est indéfini si ready ( ) ! = true .

Table des matières

Paramètres

fmt_begin, fmt_end - pointeurs vers une plage de caractères définissant la séquence de caractères de format
fmt - std::basic_string définissant la séquence de caractères de format
fmt_s - pointeur vers une chaîne de caractères terminée par un caractère nul définissant la séquence de caractères de format
out - itérateur vers lequel la séquence de caractères résultante est copiée
flags - std::regex_constants::match_flag_type masque de bits spécifiant quels spécificateurs de format et séquences d'échappement sont reconnus
Exigences de type
-
OutputIt doit satisfaire aux exigences de LegacyOutputIterator .

Valeur de retour

1,2) out
3,4) La nouvelle chaîne construite contenant la séquence de caractères résultante.

Exceptions

Peut lever des exceptions définies par l'implémentation.

Exemple

#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(
            "$`"   // $` signifie les caractères avant la correspondance
            "[$&]" // $& signifie les caractères correspondants
            "$'"); // $' signifie les caractères suivant la correspondance
        std::cout << fmt_s << '\n';
    }   
}

Sortie :

for a good time, call [867-5309]

Voir aussi

remplace les occurrences d'une expression régulière par un texte de remplacement formaté
(modèle de fonction)
options spécifiques à la correspondance
(typedef)