Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс итератора для соответствий.
Синтаксис
template<class BidIt,
class Elem = typename std::iterator_traits<BidIt>::value_type,
class RxTraits = regex_traits<Elem> >
class regex_iterator
Параметры
BidIt
Тип итератора для подстрок соответствия.
Elem
Тип элементов для обеспечения соответствия.
RXtraits
Класс характеристик для элементов.
Замечания
Шаблон класса описывает объект итератора постоянной пересылки. Он извлекает объекты типа match_results<BidIt> , несколько раз применяя объект регулярного выражения *pregex к последовательности символов, определенной диапазоном итератора [begin, end).
Конструкторы
| Конструктор | Description |
|---|---|
| regex_iterator | Формирует итератор. |
Определения типов
| Введите имя | Description |
|---|---|
| difference_type | Тип разницы итератора. |
| iterator_category | Тип категории итератора. |
| pointer | Тип указателя на совпадение. |
| reference | Тип ссылки на соответствие. |
| regex_type | Тип регулярного выражения для сопоставления. |
| value_type | Тип соответствия. |
Операторы
| Operator | Description |
|---|---|
| оператор!= | Сравнивает итераторы на неравенство. |
| operator* | Обращается к заданному соответствию. |
| оператор++ | Увеличивает значение итератора. |
| operator= | Сравнивает итераторы на равенство. |
| operator-> | Обращается к заданному соответствию. |
Требования
Заголовок:<regex>
Пространство имен: std
Примеры
Примеры регулярных выражений см. в следующих статьях:
// std__regex__regex_iterator.cpp
// compile with: /EHsc
#include <regex>
#include <iostream>
typedef std::regex_iterator<const char *> Myiter;
int main()
{
const char *pat = "axayaz";
Myiter::regex_type rx("a");
Myiter next(pat, pat + strlen(pat), rx);
Myiter end;
for (; next != end; ++next)
std::cout << "match == " << next->str() << std::endl;
// other members
Myiter it1(pat, pat + strlen(pat), rx);
Myiter it2(it1);
next = it1;
Myiter::iterator_category cat = std::forward_iterator_tag();
Myiter::difference_type dif = -3;
Myiter::value_type mr = *it1;
Myiter::reference ref = mr;
Myiter::pointer ptr = &ref;
dif = dif; // to quiet "unused" warnings
ptr = ptr;
return (0);
}
match == a
match == a
match == a
regex_iterator::d ifference_type
Тип разницы итератора.
typedef std::ptrdiff_t difference_type;
Замечания
Тип является синонимом std::ptrdiff_t.
regex_iterator::iterator_category
Тип категории итератора.
typedef std::forward_iterator_tag iterator_category;
Замечания
Тип является синонимом std::forward_iterator_tag.
regex_iterator::operator!=
Сравнивает итераторы на неравенство.
bool operator!=(const regex_iterator& right);
Параметры
right
Итератор для сравнения.
Замечания
Функция-член возвращает значение !(*this == right).
regex_iterator::operator*
Обращается к заданному соответствию.
const match_results<BidIt>& operator*();
Замечания
Эта функция-член возвращает хранимое значение match.
regex_iterator::operator++
Увеличивает значение итератора.
regex_iterator& operator++();
regex_iterator& operator++(int);
Замечания
Если текущее совпадение не имеет символов, первый оператор вызывает; в противном случае он перемещает regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail | regex_constants::match_not_null)сохраненное значение begin , чтобы указать на первый символ после текущего совпадения, а затем вызывается regex_search(begin, end, match, *pregex, flags | regex_constants::match_prev_avail). В любом случае, если поиск заканчивается неудачно, оператор задает для объекта итератор конца последовательности. Оператор возвращает объект.
Второй оператор создает копию объекта, увеличивает объект, а затем возвращает копию.
regex_iterator::operator=
Сравнивает итераторы на равенство.
bool operator==(const regex_iterator& right);
Параметры
right
Итератор для сравнения.
Замечания
Функция-член возвращает значение true, если *this и справа являются итераторами конца последовательности, либо если ни есть итератор конца последовательности итератор и , и , end == right.endа flags == right.flagsbegin == right.beginтакже pregex == right.pregex. В противном случае возвращается значение false.
regex_iterator::operator->
Обращается к заданному соответствию.
const match_results<BidIt> * operator->();
Замечания
Функция-член возвращает адрес сохраненного значения match.
regex_iterator::p ointer
Тип указателя на совпадение.
typedef match_results<BidIt> *pointer;
Замечания
Этот тип является синонимом для match_results<BidIt>*, где BidIt — параметр шаблона.
regex_iterator::reference
Тип ссылки на соответствие.
typedef match_results<BidIt>& reference;
Замечания
Этот тип является синонимом для match_results<BidIt>&, где BidIt — параметр шаблона.
regex_iterator::regex_iterator
Формирует итератор.
regex_iterator();
regex_iterator(BidIt first,
BidIt last,
const regex_type& re,
regex_constants::match_flag_type f = regex_constants::match_default);
Параметры
first
Начало последовательности для сопоставления.
last
Конец последовательности для сопоставления.
ре
Регулярное выражение для соответствий.
f
Флаги для соответствий.
Замечания
Первый конструктор создает итератор конца последовательности. Второй конструктор инициализирует хранимое значение begin с первым, сохраненным значением end с последним, сохраненным значением pregex &reи сохраненным значением flags f. Затем он вызывает regex_search(begin, end, match, *pregex, flags). Если поиск заканчивается неудачно, конструктор задает для объекта итератор конца последовательности.
regex_iterator::regex_type
Тип регулярного выражения для сопоставления.
typedef basic_regex<Elem, RXtraits> regex_type;
Замечания
Typedef является синонимом basic_regex<Elem, RXtraits>.
regex_iterator::value_type
Тип соответствия.
typedef match_results<BidIt> value_type;
Замечания
Этот тип является синонимом для match_results<BidIt>, где BidIt — параметр шаблона.
См. также
<regex>
Класс regex_constants
Класс regex_error
<функции regex>
Класс regex_iterator
<Операторы regex>
Класс regex_token_iterator
Класс regex_traits
<regex> typedefs