std::regex_replace

来自cppreference.com
< cpp‎ | regex

 
 
正则表达式库
原文:
Classes
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
basic_regex(C++11)
sub_match(C++11)
match_results(C++11)
算法
原文:
Algorithms
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
regex_match(C++11)
regex_search(C++11)
regex_replace(C++11)
迭代器
原文:
Iterators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
regex_iterator(C++11)
regex_token_iterator(C++11)
例外
原文:
Exceptions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
regex_error(C++11)
性状
原文:
Traits
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
regex_traits(C++11)
常量
原文:
Constants
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
syntax_option_type(C++11)
match_flag_type(C++11)
error_type(C++11)
 
在头文件 <regex> 中定义
template< class OutputIt, class BidirIt,

          class Traits, class CharT,
          class STraits, class SAlloc >
OutputIt regex_replace( OutputIt out, BidirIt first, BidirIt last,
                        const std::basic_regex<CharT,Traits>& e,
                        const std::basic_string<CharT,STraits,SAlloc>& fmt,
                        std::regex_constants::match_flag_type flags =

                            std::regex_constants::match_default );
(1) (C++11 起)
template< class OutputIt, class BidirIt,

          class Traits, class CharT >
OutputIt regex_replace( OutputIt out, BidirIt first, BidirIt last,
                        const std::basic_regex<CharT,Traits>& e,
                        const CharT* fmt,
                        std::regex_constants::match_flag_type flags =

                            std::regex_constants::match_default );
(2) (C++11 起)
template< class Traits, class CharT,

          class STraits, class SAlloc,
          class FTraits, class FAlloc >
std::basic_string<CharT,STraits,SAlloc>
    regex_replace( const std::basic_string<CharT,STraits,SAlloc>& s,
                   const std::basic_regex<CharT,Traits>& e,
                   const std::basic_string<CharT,FTraits,FAlloc>& fmt,
                   std::regex_constants::match_flag_type flags =

                       std::regex_constants::match_default );
(3) (C++11 起)
template< class Traits, class CharT,

          class STraits, class SAlloc >
std::basic_string<CharT,STraits,SAlloc>
    regex_replace( const std::basic_string<CharT,STraits,SAlloc>& s,
                   const std::basic_regex<CharT,Traits>& e,
                   const CharT* fmt,
                   std::regex_constants::match_flag_type flags =

                       std::regex_constants::match_default );
(4) (C++11 起)
template< class Traits, class CharT,

          class STraits, class SAlloc >
std::basic_string<CharT>
    regex_replace( const CharT* s,
                   const std::basic_regex<CharT,Traits>& e,
                   const std::basic_string<CharT,STraits,SAlloc>& fmt,
                   std::regex_constants::match_flag_type flags =

                       std::regex_constants::match_default );
(5) (C++11 起)
template< class Traits, class CharT >

std::basic_string<CharT>
    regex_replace( const CharT* s,
                   const std::basic_regex<CharT,Traits>& e,
                   const CharT* fmt,
                   std::regex_constants::match_flag_type flags =

                       std::regex_constants::match_default );
(6) (C++11 起)
1)
构造一个std::regex_iteratori仿佛std::regex_iterator<BidirIt, CharT, traits> i(first, last, e, flags)的对象,并使用它通过序列e在每场比赛的[first,last)步骤。对于每一次这样的比赛m,不匹配的序列(m.prefix())复制到out是替换字符串的格式化,然后替换匹配的序列,如果通过调用m.format(out, fmt, flags)。如果没有找到匹配项,其余的非匹配的字符复制到out.
原文:
Constructs a std::regex_iterator object i as if by std::regex_iterator<BidirIt, CharT, traits> i(first, last, e, flags), and uses it to step through every match of e within the sequence [first,last). For each such match m, copies the non-matched subsequence (m.prefix()) into out as-is and then replaces the matched subsequence with the formatted replacement string as if by calling m.format(out, fmt, flags). When no more matches are found, copies the remaining non-matched characters to out.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
如果没有匹配,将整个序列转换成out是的
原文:
If there are no matches, copies the entire sequence into out as-is.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
如果flags包含std::regex_constants::format_no_copy,不会被复制到不匹配的子序列out.
原文:
If flags contains std::regex_constants::format_no_copy, the non-matched subsequences are not copied into out.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
flags包含std::regex_constants::format_first_only,只有第一场比赛被替换.
原文:
If flags contains std::regex_constants::format_first_only, only the first match is replaced.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
2)
为1相同),但格式化的更换进行,仿佛通过调用m.format(out, fmt, fmt + char_traits<charT>::length(fmt), flags)
原文:
same as 1), but the formatted replacement is performed as if by calling m.format(out, fmt, fmt + char_traits<charT>::length(fmt), flags)
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
3-4)
result类型std::basic_string<CharT, ST, SA>构造一个空字符串,并调用std::regex_replace(std::back_inserter(result), s.begin(), s.end(), e, fmt, flags).
原文:
Constructs an empty string result of type std::basic_string<CharT, ST, SA> and calls std::regex_replace(std::back_inserter(result), s.begin(), s.end(), e, fmt, flags).
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
5-6)
result类型std::basic_string<CharT>构造一个空字符串,并调用std::regex_replace(std::back_inserter(result), s, s + std::char_traits<CharT>::length(s), e, fmt, flags).
原文:
Constructs an empty string result of type std::basic_string<CharT> and calls std::regex_replace(std::back_inserter(result), s, s + std::char_traits<CharT>::length(s), e, fmt, flags).
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 参数

first, last -
输入字符序列,表示为一对迭代器
原文:
the input character sequence, represented as a pair of iterators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
s -
输入字符序列,如std :: basic_string的字符数组表示
原文:
the input character sequence, represented as std::basic_string or character array
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
e -
的std ::的basic_regex,将输入序列进行匹配
原文:
the std::basic_regex that will be matched against the input sequence
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
flags -
匹配标志的类型std::regex_constants::match_flag_type
原文:
the match flags of type std::regex_constants::match_flag_type
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
fmt -
正则表达式替换格式字符串,确切语法取决于flags的价值
原文:
the regex replacement format string, exact syntax depends on the value of flags
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
out -
输出迭代器来存储结果的更换
原文:
output iterator to store the result of the replacement
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
类型要求
-
OutputIt 必须满足 OutputIterator 的要求。
-
BidirIt 必须满足 BidirectionalIterator 的要求。

[编辑] 返回值

1-2)
返回的副本输出迭代器out.
原文:
Returns a copy of the output iterator out.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
3-6)
返回的字符串result包含输出.
原文:
Returns the string result which contains the output.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 例外

可能会引发std::regex_error表示错误条件.
原文:
May throw std::regex_error to indicate an 错误条件.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 为例

#include <iostream>
#include <regex>
#include <string>
int main()
{
   std::string text = "Quick brown fox";
   std::regex vowel_re("a|o|e|u|i");
   std::cout << std::regex_replace(text, vowel_re, "[$&]") << '\n';
}

输出:

Q[u][i]ck br[o]wn f[o]x

[编辑] 另请参阅

(C++11)
尝试匹配正则表达式的字符序列的任何部分
原文:
attempts to match a regular expression to any part of the character sequence
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [edit]
(C++11)
特定匹配的选项
原文:
options specific to matching
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(typedef) [edit]