std::regex_iterator<BidirIt,CharT,Traits>:: regex_iterator
|
regex_iterator
(
)
;
|
(1) | (начиная с C++11) |
|
regex_iterator
(
BidirIt a, BidirIt b,
const
regex_type
&
re,
|
(2) | (начиная с C++11) |
|
regex_iterator
(
const
regex_iterator
&
)
;
|
(3) | (начиная с C++11) |
|
regex_iterator
(
BidirIt, BidirIt,
const
regex_type
&&
,
|
(4) | (начиная с C++11) |
Создает новый
regex_iterator
:
regex_iterator
из последовательности символов
[
a
,
b
)
, регулярного выражения
re
и флага
m
, который определяет поведение сопоставления. Этот конструктор выполняет первоначальный вызов
std::regex_search
с этими данными. Если результат этого первоначального вызова
false
,
*
this
устанавливается в итератор конца последовательности.
regex_iterator
.
Параметры
| a | - | LegacyBidirectionalIterator на начало целевой последовательности символов |
| b | - | LegacyBidirectionalIterator на конец целевой последовательности символов |
| re | - | регулярное выражение, используемое для поиска в целевой последовательности символов |
| m | - | флаги, определяющие поведение re |
Пример
#include <iostream> #include <regex> #include <string_view> int main() { constexpr std::string_view str{R"( #ONE: *p = &Mass; #Two: MOV %rd, 42 )"}; const std::regex re("[a-w]"); // create regex_iterator, overload (2) auto it = std::regex_iterator<std::string_view::iterator> { str.cbegin(), str.cend(), re // re is lvalue; if an immediate expression was used // instead, e.g. std::regex{"[a-z]"}, this would // produce an error since overload (4) is deleted }; for (decltype(it) last /* overload (1) */; it != last; ++it) std::cout << (*it).str(); std::cout << '\n'; }
Вывод:
password
Отчёты о дефектах
Следующие отчеты об изменениях в поведении, содержащие описания дефектов, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение в опубликованной версии | Корректное поведение |
|---|---|---|---|
| LWG 2332 | C++11 |
regex_iterator, созданный из временного
basic_regex, становился недействительным немедленно
|
такая конструкция запрещена через удаленную перегрузку |