![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
match_resultsBoost , Boost.Regex 5.1.2 , Reference
|
Элемент |
Ценность |
---|---|
пустой() |
правда |
размер() |
0 |
стр() |
basic_string |
match_results(const match_results& m);
Последствия: Построение объекта класса match_results, как копия m.
match_results& operator=(const match_results& m);
Последствия: Назначает m на *это. Постусловия этой функции указаны в таблице:
Элемент |
Ценность |
---|---|
пустой() |
m.empty(). |
размер() |
m.size(). |
str(n) |
m.str(n) для всех целых чисел n < m.size(). |
префикс() |
m.prefix(). |
суффикс() |
m.suffix(). |
(*это)[n] |
m[n] для всех целых чисел n < m.size(). |
длина(n) |
m.length(n) для всех целых чисел n < m.size(). |
положение(n) |
m.position(n) для всех целых чисел n < m.size(). |
size_type size()const;
Эффекты: возвращает число sub_match
элементов, сохраненных в *это; то есть количество отмеченных подвыражений в обычном выражении, которое было сопоставлено плюс один.
size_type max_size()const;
Эффекты: возвращает максимальное количество sub_match
элементов, которые могут быть сохранены в *это.
bool empty()const;
Последствия: Размер возврата() == 0.
difference_type length(int sub = 0)const; difference_type length(const char_type* sub)const; template <class charT> difference_type length(const charT* sub)const; template <class charT, class Traits, class A> difference_type length(const std::basic_string<charT, Traits, A>&)const;
Требуется : чтобы объект результатов матча был инициализирован в результате успешного вызова regex_search
или regex_match
или был возвращен из regex_iterator
, и чтобы лежащие в его основе итераторы впоследствии не были признаны недействительными. Поднимет std::logic_error
, если объект результатов матча не был инициализирован.
Эффекты: Возвращает длину подвыражения sub, то есть: (*this)[sub].длина()
.
Перегрузки, которые принимают строку, относятся к названному подвыражению n. В том случае, если такого подвыражения нет, то возвращается ноль.
Шаблонные перегрузки этой функции позволяют строке и/или типу символа отличаться от типа символа базовой последовательности и/или регулярного выражения: в этом случае символы будут расширены до основного типа символа исходного регулярного выражения. Ошибка компилятора произойдет, если аргумент пройдет более широкий тип символа, чем базовая последовательность. Эти перегрузки позволяют использовать в качестве аргумента обычную узкую строку символа C, даже если базовый тип символа соответствующего выражения может быть чем-то более экзотическим, таким как тип символа Unicode.
difference_type position(unsigned int sub = 0)const; difference_type position(const char_type* sub)const; template <class charT> difference_type position(const charT* sub)const; template <class charT, class Traits, class A> difference_type position(const std::basic_string<charT, Traits, A>&)const;
Требуется : чтобы объект результатов матча был инициализирован в результате успешного вызова regex_search
или regex_match
или был возвращен из regex_iterator
, и чтобы лежащие в его основе итераторы впоследствии не были признаны недействительными. Поднимет std::logic_error
, если объект результатов матча не был инициализирован.
Эффекты: возвращает исходное местоположение подвыражения sub или -1, если sub не совпадал. Обратите внимание, что если это представляет собой частичное совпадение, то позиция()
вернет местоположение частичного совпадения, даже если (*это)[0].совпадение
является ложным.
Перегрузки, которые принимают строку, относятся к названному подвыражению n. В том случае, если нет такого названного подвыражения, то возвращается -1.
Шаблонные перегрузки этой функции позволяют строке и/или типу символа отличаться от типа символа базовой последовательности и/или регулярного выражения: в этом случае символы будут расширены до основного типа символа исходного регулярного выражения. Ошибка компилятора произойдет, если аргумент пройдет более широкий тип символа, чем базовая последовательность. Эти перегрузки позволяют использовать в качестве аргумента обычную узкую строку символа C, даже если базовый тип символа соответствующего выражения может быть чем-то более экзотическим, таким как тип символа Unicode.
string_type str(int sub = 0)const; string_type str(const char_type* sub)const; template <class Traits, class A> string_type str(const std::basic_string<char_type, Traits, A>& sub)const; template <class charT> string_type str(const charT* sub)const; template <class charT, class Traits, class A> string_type str(const std::basic_string<charT, Traits, A>& sub)const;
Требуется : чтобы объект результатов матча был инициализирован в результате успешного вызова regex_search
или regex_match
или был возвращен из regex_iterator
, и чтобы лежащие в его основе итераторы впоследствии не были признаны недействительными. Поднимет std::logic_error
, если объект результатов матча не был инициализирован.
Эффекты: Возвращает подвыражение sub в виде строки: string_type(*this)[sub])
.
Перегрузки, которые принимают строку, возвращают строку, которая соответствовала названному подвыражению n. В том случае, если такой подэкспрессии нет, то возвращается пустая строка.
Шаблонные перегрузки этой функции позволяют строке и/или типу символа отличаться от типа символа базовой последовательности и/или регулярного выражения: в этом случае символы будут расширены до основного типа символа исходного регулярного выражения. Ошибка компилятора произойдет, если аргумент пройдет более широкий тип символа, чем базовая последовательность. Эти перегрузки позволяют использовать в качестве аргумента обычную узкую строку символа C, даже если базовый тип символа соответствующего выражения может быть чем-то более экзотическим, таким как тип символа Unicode.
const_reference operator[](int n) const; const_reference operator[](const char_type* n) const; template <class Traits, class A> const_reference operator[](const std::basic_string<char_type, Traits, A>& n) const; template <class charT> const_reference operator[](const charT* n) const; template <class charT, class Traits, class A> const_reference operator[](const std::basic_string<charT, Traits, A>& n) const;
Требуется : чтобы объект результатов матча был инициализирован в результате успешного вызова regex_search
или regex_match
или был возвращен из regex_iterator
, и чтобы лежащие в его основе итераторы впоследствии не были признаны недействительными. Поднимет std::logic_error
, если объект результатов матча не был инициализирован.
Эффекты: Возвращает ссылку на объект sub_match
, представляющий последовательность символов, которая соответствовала отмеченному субвыражению n Если n ==0
, то возвращает ссылку на объект sub_match
, представляющий последовательность символов, которая соответствовала всему регулярному выражению. Если n находится вне диапазона, или если n является непревзойденным суб-выражением, то возвращается объект sub_match
, чей соответствующий элемент является ложным.
Перегрузки, которые принимают строку, возвращают ссылку на объект sub_match
, представляющий последовательность символов, которая соответствовала названному субвыражению n. В случае, если нет такого названного подвыражения, то возвращается объект sub_match
, соответствующий элемент которого является ложным.
Шаблонные перегрузки этой функции позволяют строке и/или типу символа отличаться от типа символа базовой последовательности и/или регулярного выражения: в этом случае символы будут расширены до основного типа символа исходного регулярного выражения. Ошибка компилятора произойдет, если аргумент пройдет более широкий тип символа, чем базовая последовательность. Эти перегрузки позволяют использовать в качестве аргумента обычную узкую строку символа C, даже если базовый тип символа соответствующего выражения может быть чем-то более экзотическим, таким как тип символа Unicode.
const_reference prefix()const;
Требуется : чтобы объект результатов матча был инициализирован в результате успешного вызова regex_search
или regex_match
или был возвращен из regex_iterator
, и чтобы лежащие в его основе итераторы впоследствии не были признаны недействительными. Поднимет std::logic_error
, если объект результатов матча не был инициализирован.
Эффекты: Возвращает ссылку на объект sub_match
, представляющий последовательность символов от начала сопоставляемой строки до начала найденного матча.
const_reference suffix()const;
Требуется : чтобы объект результатов матча был инициализирован в результате успешного вызова regex_search
или regex_match
или был возвращен из regex_iterator
, и чтобы лежащие в его основе итераторы впоследствии не были признаны недействительными. Поднимет std::logic_error
, если объект результатов матча не был инициализирован.
Эффекты: Возвращает ссылку на объект sub_match
, представляющий последовательность символов от конца матча, найденного до конца строки, подходящей или искомой.
const_iterator begin()const;
Эффекты: возвращает стартовый итератор, который перечисляет все отмеченные подэкспрессионные совпадения, хранящиеся в *это.
const_iterator end()const;
Эффекты: возвращает завершающий итератор, который перечисляет все отмеченные подэкспрессионные совпадения, хранящиеся в *это.
template <class OutputIterator, class Formatter> OutputIterator format(OutputIterator out, Formatter fmt, match_flag_type flags = format_default);
Требуется : Тип OutputIterator
соответствует требованиям Output Iterator (C++ std 24.1.2).
Тип Formatter
должен быть либо указателем на нулевую строку типа char_type
(например, std::char_string<char_type) или быть унарным, двоичным или троичным функтором, который вычисляет строку замены из вызова функции: либо
, а затем возвращают новую позицию OutputIterator). Обратите внимание, что если формататор является функтором, то он проходит по значению : пользователи, которые хотят передать функциональные объекты с внутренним состоянием, могут захотеть использовать Boost.Ref, чтобы обернуть объект так, чтобы он прошел по ссылке.fmt
для использования в качестве замещающего текста, либо char_type
(*2>, flags, оба из которых пишут заменяющий текст на
Требуется : чтобы объект результатов матча был инициализирован в результате успешного вызова regex_search
или regex_match
или был возвращен из regex_iterator
, и чтобы лежащие в его основе итераторы впоследствии не были признаны недействительными. Поднимет std::logic_error
, если объект результатов матча не был инициализирован.
Effects: Если fmt
является либо нулевой строкой, либо контейнером char_type
, то копирует последовательность символов fmt.fmt.fmt.end())OutputIteratorout. Для каждого спецификатора формата или последовательности выхода в fmt замените эту последовательность либо символом(ами), который она представляет, либо последовательностью символов в
*, к которому она относится. Битмаски, указанные в флагах, определяют, какие спецификаторы формата или последовательности выхода распознаются, по умолчанию это формат, используемый ECMA-262, спецификация языка ECMAScript, глава 15, часть 5.4.11 String.prototype.replace.
Если fmt
является объектом функции, то в зависимости от количества аргументов, которые принимает объект функции, он либо:
fmt(*this)
и скопируйте строку, возвращенную в OutputIterator
out.fmt(*this, out)
.fmt(*this, out, flags)
.Во всех случаях возвращается новое положение OutputIterator
.
Смотрите руководство по синтаксису формата для получения дополнительной информации .
Возврат: out.
template <class Formatter> string_type format(Formatter fmt, match_flag_type flags = format_default);
Требуется Тип char_type
, или быть контейнером char_type
(например, std::char_string>char_type) или быть унарным, двоичным или троичным функтором, который вычисляет строку замены из вызова функции: либо
, а затем возвращает новую позицию OutputIterator).fmt (*3>out
, flags
Требуется : чтобы объект результатов матча был инициализирован в результате успешного вызова regex_search
или regex_match
или был возвращен из regex_iterator
, и чтобы лежащие в его основе итераторы впоследствии не были признаны недействительными. Поднимет std::logic_error
, если объект результатов матча не был инициализирован.
Effects: Если fmt
является либо нулевой строкой, либо контейнером char_type
, то копии строки fmt: Для каждого спецификатора формата или последовательности выхода в fmt заменяют эту последовательность либо символом(ами), который она представляет, либо последовательностью символов в это
, к которому она относится. Битмаски, указанные в флагах, определяют, какие спецификаторы формата или последовательности выхода распознаются, по умолчанию это формат, используемый ECMA-262, спецификация языка ECMAScript, глава 15, часть 5.4.11 String.prototype.replace.
Если fmt
является объектом функции, то в зависимости от количества аргументов, которые принимает объект функции, он либо:
fmt(*this)
и верните результат.fmt(*this,-----iterator)
, где неуточненный---iteterator, используемый для копирования вывода в результат строки.
fmt(*this,----iterator, flags)
, где неуточненный---iteterator используется для копирования вывода в результат строки.
Смотрите руководство по синтаксису формата для получения дополнительной информации .
allocator_type get_allocator()const;
Эффекты: возвращает копию Распределителя, которая была передана конструктору объекта.
void swap(match_results& that);
Последствия: Изменяет содержание двух последовательностей.
Постсостояние: *это содержит последовательность сопоставленных субвыражений, которые были в том, что содержит последовательность сопоставленных субвыражений, которые были в *это.
Комплексность: постоянное время.
typedef typename value_type::capture_sequence_type capture_sequence_type;
Определяет тип реализации, который удовлетворяет требованиям стандартной библиотечной последовательности (21.1.1, включая дополнительные операции Таблицы 68), значение_тип которой представляет собой sub_match<BidirectionalIterator>
. Этот тип оказывается std::vector<sub_match<BidirectionalIterator> >
, но на это не стоит полагаться.
const capture_sequence_type& captures(std::size_t i)const;
Требуется : чтобы объект результатов матча был инициализирован в результате успешного вызова regex_search
или regex_match
или был возвращен из regex_iterator
, и чтобы лежащие в его основе итераторы впоследствии не были признаны недействительными. Поднимет std::logic_error
, если объект результатов матча не был инициализирован.
Эффекты: возвращает последовательность, содержащую все захваты, полученные для подвыражения i.
Возврат: (*это)[i].Захваты();
Предпосылки: библиотека должна быть построена и использована с определением BOOST_REGEX_MATCH_EXTRA, и вы должны передать флаг match_extra функциям соответствия regex (regex_match
, regex_iterator
), чтобы эта функция участника была определена и вернулась полезная информация.
Обоснование: Включение этой функции имеет несколько последствий:
template <class BidirectionalIterator, class Allocator> bool operator == (const match_results<BidirectionalIterator, Allocator>& m1, const match_results<BidirectionalIterator, Allocator>& m2);
Эффекты: Сравнение двух последовательностей для равенства.
template <class BidirectionalIterator, class Allocator> bool operator != (const match_results<BidirectionalIterator, Allocator>& m1, const match_results<BidirectionalIterator, Allocator>& m2);
Эффекты: Сравнение двух последовательностей для неравенства.
template <class charT, class traits, class BidirectionalIterator, class Allocator> basic_ostream<charT, traits>& operator << (basic_ostream<charT, traits>& os, const match_results<BidirectionalIterator, Allocator>& m);
Эффекты: Записывает содержимое m в поток os, как если бы позвонив os << m()
; Возвращает os.
template <class BidirectionalIterator, class Allocator> void swap(match_results<BidirectionalIterator, Allocator>& m1, match_results<BidirectionalIterator, Allocator>& m2);
Последствия: Изменяет содержание двух последовательностей.
Статья match_results раздела Boost.Regex 5.1.2 Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |