Partager via


regex_replace Function

Replaces est conforme à des expressions régulières.

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);

Paramètres

  • OutIt
    Le type d'itérateur pour des remplacements.

  • BidIt
    Le type d'itérateur pour les sous-correspondances.

  • RXtraits
    Classe Ctraits pour les éléments.

  • Alloc
    La classe de l'allocateur d'expression régulière.

  • Elem
    Le type des éléments à la correspondance.

  • flags
    Balises pour les correspondances.

  • first
    Début de séquence à la correspondance.

  • fmt
    Le format des remplacements.

  • last
    Fin de séquence à la correspondance.

  • out
    l'itérateur de sortie.

  • re
    L'expression régulière en correspondance.

  • str
    Chaîne en correspondance.

Notes

La première fonction crée un objet iter(first, last, re, flags) de regex_iterator Class et l'utilise pour couper sa plage d'entrée [first, last) en série de sous-séquences T0M0T1M1...TN-1MN-1TN, où Mn est la correspondance d' nth détectée par l'itérateur.Si aucune correspondance n'est trouvée, T0 est la plage d'entrée entière et N est zéro.Si (flags & format_first_only) != 0 uniquement la première correspondance est utilisé, T1 est tout le texte d'entrée qui suit la correspondance, et N est 1.Pour chaque i dans la plage [0, N), si (flags & format_no_copy) == 0 il copie le texte dans la plage Ti à l'itérateur out.Il appelle ensuite m.format(out, fmt, flags), où m est l'objet d' match_results retourné par l'objet itérateur iter pour le Misous-séquence.Enfin, si (flags & format_no_copy) == 0 il copie le texte dans la plage TN à l'itérateur out.La fonction retourne out.

La deuxième fonction construit une variable locale result avec du type basic_string<charT> et appelle regex_replace(back_inserter(result), str.begin(), str.end(), re, fmt, flags).Elle retourne result.

Exemple

 

// 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); 
    } 
 
  

Configuration requise

en-tête : <regex>

l'espace de noms : DST

Voir aussi

Référence

<regex>

regex_match Function

regex_search Function