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

std:: regex_constants :: match_flag_type flags =

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

format gibt eine Formatzeichenkette aus und ersetzt alle Formatspezifizierer oder Escape-Sequenzen in dieser Zeichenkette mit Übereinstimmungsdaten von * this .

1) Das Formatzeichenfolge wird durch den Bereich [ fmt_first , fmt_last ) definiert. Die resultierende Zeichenfolge wird nach out kopiert.
2) Die Formatzeichenfolge wird durch die Zeichen in fmt definiert. Die resultierende Zeichenfolge wird nach out kopiert.
3,4) Die Formatzeichenfolge wird durch die Zeichen in fmt bzw. fmt_s definiert. Die resultierende Zeichenfolge wird in einen neu konstruierten std::basic_string kopiert, der zurückgegeben wird.

Die flags Bitmaske bestimmt, welche Formatbezeichner und Escape-Sequenzen erkannt werden.

Das Verhalten von format ist undefiniert, falls ready ( ) ! = true .

Inhaltsverzeichnis

Parameter

fmt_begin, fmt_end - Zeiger auf einen Zeichenbereich, der die Formatzeichenfolge definiert
fmt - std::basic_string die die Formatzeichenfolge definiert
fmt_s - Zeiger auf eine nullterminierte Zeichenkette, die die Formatzeichenfolge definiert
out - Iterator, an den die resultierende Zeichenfolge kopiert wird
flags - std::regex_constants::match_flag_type Bitmaske, die angibt, welche Formatspezifizierer und Escape-Sequenzen erkannt werden
Typanforderungen
-
OutputIt muss die Anforderungen von LegacyOutputIterator erfüllen.

Rückgabewert

1,2) out
3,4) Die neu konstruierte Zeichenkette, die die resultierende Zeichensequenz enthält.

Exceptions

Kann implementierungsdefinierte Ausnahmen auslösen.

Beispiel

#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(
            "$`"   // $` means characters before the match
            "[$&]" // $& means the matched characters
            "$'"); // $' means characters following the match
        std::cout << fmt_s << '\n';
    }   
}

Ausgabe:

for a good time, call [867-5309]

Siehe auch

ersetzt Vorkommen eines regulären Ausdrucks mit formatiertem Ersetzungstext
(Funktions-Template)
optionsspezifische Einstellungen für das Matching
(Typdefinition)