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) (начиная с 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) (начиная с 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) (начиная с C++11)
string_type format ( const char_type * fmt_s,

std:: regex_constants :: match_flag_type flags =

std:: regex_constants :: format_default ) const ;
(4) (начиная с C++11)

format выводит строку формата, заменяя любые спецификаторы формата или escape-последовательности в этой строке данными соответствия из * this .

1) Последовательность символов формата определяется диапазоном [ fmt_first , fmt_last ) . Результирующая последовательность символов копируется в out .
2) Последовательность символов формата определяется символами в fmt . Результирующая последовательность символов копируется в out .
3,4) Последовательность символов формата определяется символами в fmt и fmt_s соответственно. Результирующая последовательность символов копируется во вновь созданную std::basic_string , которая возвращается.

Битовая маска flags определяет, какие спецификаторы формата и escape-последовательности распознаются.

Поведение format не определено, если ready ( ) ! = true .

Содержание

Параметры

fmt_begin, fmt_end - указатели на диапазон символов, определяющих последовательность символов формата
fmt - std::basic_string определяющая последовательность символов формата
fmt_s - указатель на строку символов с нулевым завершением, определяющую последовательность символов формата
out - итератор, в который копируется результирующая последовательность символов
flags - std::regex_constants::match_flag_type битовая маска, определяющая, какие спецификаторы формата и escape-последовательности распознаются
Требования к типам
-
OutputIt должен удовлетворять требованиям LegacyOutputIterator .

Возвращаемое значение

1,2) out
3,4) Вновь созданная строка, содержащая результирующую последовательность символов.

Исключения

Может генерировать исключения, определяемые реализацией.

Пример

#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(
            "$`"   // $` означает символы перед совпадением
            "[$&]" // $& означает совпавшие символы
            "$'"); // $' означает символы после совпадения
        std::cout << fmt_s << '\n';
    }   
}

Вывод:

for a good time, call [867-5309]

Смотрите также

заменяет вхождения регулярного выражения форматированным текстом замены
(шаблон функции)
параметры, специфичные для сопоставления
(определение типа)