std::regex_replace
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Заголовочный файл <regex>
|
||
template< class OutputIt, class BidirIt, class Traits, class CharT, |
(1) | (начиная с C++11) |
template< class OutputIt, class BidirIt, class Traits, class CharT > |
(2) | (начиная с C++11) |
template< class Traits, class CharT, class STraits, class SAlloc, |
(3) | (начиная с C++11) |
template< class Traits, class CharT, class STraits, class SAlloc > |
(4) | (начиная с C++11) |
template< class Traits, class CharT, class STraits, class SAlloc > |
(5) | (начиная с C++11) |
template< class Traits, class CharT > std::basic_string<CharT> |
(6) | (начиная с C++11) |
i
как бы std::regex_iterator<BidirIt, CharT, traits> i(first, last, e, flags), и использует его для пошагового каждый матч e
в последовательности [first,last)
. Для каждого такого m
матч, копирует не соответствием подпоследовательность (m.prefix()
) в out
как есть, а затем заменяет соответствует последовательности с отформатированную строку замены как при вызове m.format(out, fmt, flags). Когда больше нет совпадения найдены, копирует оставшиеся не соответствием символов out
.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
.You can help to correct and verify the translation. Click here for instructions.
out
как есть.out
as-is.You can help to correct and verify the translation. Click here for instructions.
flags
содержит std::regex_constants::format_no_copy, не соответствием подпоследовательности не копируются в out
.flags
contains std::regex_constants::format_no_copy, the non-matched subsequences are not copied into out
.You can help to correct and verify the translation. Click here for instructions.
flags
содержит std::regex_constants::format_first_only, только первый матч заменить.flags
contains std::regex_constants::format_first_only, only the first match is replaced.You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
result
типа std::basic_string<CharT, ST, SA> и вызывает std::regex_replace(std::back_inserter(result), s.begin(), s.end(), e, fmt, flags).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).You can help to correct and verify the translation. Click here for instructions.
result
типа std::basic_string<CharT> и вызывает std::regex_replace(std::back_inserter(result), s, s + std::char_traits<CharT>::length(s), e, fmt, flags).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).You can help to correct and verify the translation. Click here for instructions.
Содержание |
[править] Параметры
first, last | - | входная последовательность символов, представленных в виде пары итераторов
Original: the input character sequence, represented as a pair of iterators The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
s | - | входная последовательность символов, представленных в виде STD :: basic_string или массив символов
Original: the input character sequence, represented as std::basic_string or character array The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
e | - | зЬй :: basic_regex, которые будут сопоставляться с входной последовательности
Original: the std::basic_regex that will be matched against the input sequence The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
flags | - | Матч флагов типа std::regex_constants::match_flag_type
Original: the match flags of type std::regex_constants::match_flag_type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
fmt | - | Формат регулярных выражений замены строки, синтаксис, зависит от величины
flags Original: the regex replacement format string, exact syntax depends on the value of flags The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
out | - | Выход итератора для хранения результате замены
Original: output iterator to store the result of the replacement The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Требования, накладываемые на типы | ||
-OutputIt должен соответствовать требованиям OutputIterator .
| ||
-BidirIt должен соответствовать требованиям BidirectionalIterator .
|
[править] Возвращаемое значение
out
.out
.You can help to correct and verify the translation. Click here for instructions.
result
выходных.result
which contains the output.You can help to correct and verify the translation. Click here for instructions.
[править] Исключения
You can help to correct and verify the translation. Click here for instructions.
[править] Пример
#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) |
Попытки соответствовать регулярное выражение в любую часть последовательности символов Original: attempts to match a regular expression to any part of the character sequence The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (шаблон функции) |
(C++11) |
опций, специфичных для сравнения Original: options specific to matching The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (определение типа) |