regex_replace 函式
表單取代符合規則運算式。
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
取代的 Iterator 型別。BidIt
相符的 Iterator 型別。RXtraits
項目的特性類別。Alloc
規則運算式配置器類別。Elem
項目的型別對應。flags
遊戲的旗標。first
序列開頭對應。fmt
取代的格式。last
要比對的序列結尾。out
輸出 Iterator。re
要比對的規則運算式。str
符合的字串。
備註
第一個建構函式 regex_iterator 類別iter(first, last, re, flags) 物件並將其輸入範圍 [first, last) 成一系列的 subsequences T0M0T1M1...TN-1MN-1TN, Mn 是 Iterator 偵測到的 nth 。 如果找不到符合的項目, T0 是整個輸入範圍,而且 N 為零。 如果只有第一個相符項目使用 (flags & format_first_only) != 0 , T1 是遵循符合項目的所有輸入文字,,且 N 為 1。 對於在範圍內 [0, N)的每個,則為 i ,否則 (flags & format_no_copy) == 0 會複製介於 Ti 的文字的 Iterator out。 然後它會呼叫 m.format(out, fmt, flags), m 為 subsequence 的 Iterator Mi物件傳回 match_results 物件的 iter 。 最後,如果 (flags & format_no_copy) == 0 ,會複製介於 TN 的文字的 Iterator out。 函式會傳回 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