std::regex_replace
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
Определено в заголовочном файле <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
.Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
out
как есть.out
as-is.Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
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
.Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
flags
содержит std::regex_constants::format_first_only, только первый матч заменить.flags
contains std::regex_constants::format_first_only, only the first match is replaced.Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
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).Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
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).Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Содержание |
[править] Параметры
first, last | — | входная последовательность символов, представленных в виде пары итераторов
Оригинал: the input character sequence, represented as a pair of iterators Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
s | — | входная последовательность символов, представленных в виде STD :: basic_string или массив символов
Оригинал: the input character sequence, represented as std::basic_string or character array Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
e | — | std::basic_regex, которые будут сопоставляться с входной последовательности
Оригинал: the std::basic_regex that will be matched against the input sequence Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
flags | — | Матч флагов типа std::regex_constants::match_flag_type
Оригинал: the match flags of type std::regex_constants::match_flag_type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
fmt | — | Формат регулярных выражений замены строки, синтаксис, зависит от величины
flags Оригинал: the regex replacement format string, exact syntax depends on the value of flags Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
out | — | Выход итератора для хранения результате замены
Оригинал: output iterator to store the result of the replacement Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
Требования к типам | ||
-OutputIt должен соответствовать требованиям OutputIterator .
| ||
-BidirIt должен соответствовать требованиям BidirectionalIterator .
|
[править] Возвращаемое значение
out
.out
.Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
result
выходных.result
which contains the output.Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Исключения
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Пример
#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) |
пытается сопоставить регулярное выражение любой части последовательности символов (шаблон функции) |
(C++11) |
параметры, специфичные для сопоставления (определение типа) |