共用方式為


regex_replace Function

取代符合規則運算式。

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

參數

  • OutIt
    要取代的列舉型別。

  • BidIt
    子相符項目的列舉值型別。

  • RXtraits
    項目特性類別。

  • Alloc
    規則運算式配置器類別。

  • Elem
    項目的型別來對應。

  • flags
    符合的旗標。

  • first
    序列開頭來對應。

  • fmt
    要取代的格式。

  • last
    序列結尾來對應。

  • out
    輸出 Iterator 的地方。

  • re
    要比對的規則運算式。

  • str
    符合的字串。

備註

第一個函式所建構物件 regex_iterator Classiter(first, last, re, flags) 並將它的輸入範圍 [first, last) 轉換為一連串的結果 T0M0T1M1...TN-1MN-1TN, Mn 是 Iterator 偵測的 nth 比對。 如果找不到符合的項目, T0 是整個輸入範圍,以及 N 為零。 如果只有第一個符合項目,使用 (flags & format_first_only) != 0T1 所要遵循的符合項目的所有輸入文字,然後, N 為 1。 若要在範圍 [0, N)的每 i ,則為,如果 (flags & format_no_copy) == 0 會複製在範圍 Ti 的文字。 outIterator。 然後它會呼叫 m.format(out, fmt, flags), m 是序列的 MiIterator 物件傳回的 match_results 物件 iter 。 最後,因此,如果 (flags & format_no_copy) == 0 會複製在範圍 TN 的文字。 outIterator。 函式會傳回 out。

第二個建構函式的區域變數 result 型別 basic_string<charT> 並呼叫 regex_replace(back_inserter(result), str.begin(), str.end(), re, fmt, flags)。 它會傳回 result。

範例

 

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

需求

標題: <regex>

命名空間: std

請參閱

參考

<regex>

regex_match Function

regex_search Function