Spec-Zone.ru › Qt

Класс QRegularExpressionMatchIterator

Класс QRegularExpressionMatchIterator предоставляет итератор по результатам глобального поиска объекта QRegularExpression в строке. Подробнее...

Заголовок: #include <QRegularExpressionMatchIterator>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
С момента: Qt 5.0
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются повторно входящими.

Открытые функции

QRegularExpressionMatchIterator(QRegularExpressionMatchIterator &&iterator)
QRegularExpressionMatchIterator(const QRegularExpressionMatchIterator &iterator)
QRegularExpressionMatchIterator()
QRegularExpressionMatchIterator & operator=(QRegularExpressionMatchIterator &&iterator)
QRegularExpressionMatchIterator & operator=(const QRegularExpressionMatchIterator &iterator)
~QRegularExpressionMatchIterator()
bool hasNext() const
bool isValid() const
QRegularExpression::MatchOptions matchOptions() const
QRegularExpression::MatchType matchType() const
QRegularExpressionMatch next()
QRegularExpressionMatch peekNext() const
QRegularExpression regularExpression() const
void swap(QRegularExpressionMatchIterator &other)

Подробное описание

Объект QRegularExpressionMatchIterator — это итератор только вперёд, подобный Java-итератору; его можно получить, вызвав функцию QRegularExpression::globalMatch(). Новый QRegularExpressionMatchIterator будет расположен перед первым результатом. Затем вы можете вызвать функцию hasNext(), чтобы проверить наличие дополнительных результатов; если таковые имеются, функция next() вернёт следующий результат и переместит итератор вперёд.

Каждый результат — объект QRegularExpressionMatch, содержащий всю информацию об этом результате (включая подстроки, которые были захвачены).

Например:

// extracts the words
QRegularExpression re("(\\w+)");
QString subject("the quick fox");
QRegularExpressionMatchIterator i = re.globalMatch(subject);
while (i.hasNext()) {
    QRegularExpressionMatch match = i.next();
    // ...
}

Кроме того, QRegularExpressionMatchIterator предлагает функцию peekNext(), чтобы получить следующий результат без перемещения итератора.

Начиная с Qt 6.0, можно просто использовать результат QRegularExpression::globalMatch в цикле for с диапазоном, например, так:

// using a raw string literal, R"(raw_characters)", to be able to use "\w"
// without having to escape the backslash as "\\w"
QRegularExpression re(R"(\w+)");
QString subject("the quick fox");
for (const QRegularExpressionMatch &match : re.globalMatch(subject)) {
    // ...
}

Вы можете получить объект QRegularExpression, с которым сравнивалась строка-предмет, вызвав функцию regularExpression(); тип совпадения и параметры совпадения также доступны, вызвав функции matchType() и matchOptions() соответственно.

Дополнительную информацию о классах регулярных выражений Qt см. в документации к QRegularExpression.

См. также QRegularExpression и QRegularExpressionMatch.

Документация по членам-функциям

[since 6.1] QRegularExpressionMatchIterator::QRegularExpressionMatchIterator(QRegularExpressionMatchIterator &&iterator)

Конструирует объект QRegularExpressionMatchIterator, перемещая данные из iterator.

Обратите внимание, что перемещённый объект QRegularExpressionMatchIterator может быть только уничтожен или присвоен. Эффект вызова других функций, помимо деструктора или одного из операторов присваивания, не определён.

Функция была добавлена в Qt 6.1.

См. также operator=().

QRegularExpressionMatchIterator::QRegularExpressionMatchIterator(const QRegularExpressionMatchIterator &iterator)

Конструирует объект QRegularExpressionMatchIterator как копию iterator.

См. также operator=().

[since 5.1] QRegularExpressionMatchIterator::QRegularExpressionMatchIterator()

Конструирует пустой, валидный объект QRegularExpressionMatchIterator. Регулярное выражение устанавливается в значение по умолчанию; тип совпадения — QRegularExpression::NoMatch, а параметры совпадения — QRegularExpression::NoMatchOption.

Вызов метода hasNext() для созданного объекта вернёт false, так как итератор не итерирует по валидной последовательности совпадений.

Функция была добавлена в Qt 5.1.

QRegularExpressionMatchIterator &QRegularExpressionMatchIterator::operator=(QRegularExpressionMatchIterator &&iterator)

Перемещающее присваивание объекта iterator данному объекту; возвращает ссылку на результат.

Обратите внимание, что перемещённый QRegularExpressionMatchIterator может быть только уничтожен или присвоен. Эффект вызова других функций, помимо деструктора или одного из операторов присваивания, не определён.

QRegularExpressionMatchIterator &QRegularExpressionMatchIterator::operator=(const QRegularExpressionMatchIterator &iterator)

Присваивает итератор iterator данному объекту; возвращает ссылку на копию.

QRegularExpressionMatchIterator::~QRegularExpressionMatchIterator()

Уничтожает объект QRegularExpressionMatchIterator.

bool QRegularExpressionMatchIterator::hasNext() const

Возвращает true true, если имеется по крайней мере один результат совпадения перед итератором; в противном случае возвращает false false.

См. также next().

bool QRegularExpressionMatchIterator::isValid() const

Возвращает true true, если объект итератора получен в результате вызова функции QRegularExpression::globalMatch() для валидного объекта QRegularExpression; возвращает false false, если QRegularExpression был невалидным.

См. также QRegularExpression::globalMatch() и QRegularExpression::isValid().

QRegularExpression::MatchOptions QRegularExpressionMatchIterator::matchOptions() const

Возвращает параметры совпадения, которые были использованы для получения этого объекта QRegularExpressionMatchIterator, то есть параметры совпадения, переданные в QRegularExpression::globalMatch().

См. также QRegularExpression::globalMatch(), regularExpression() и matchType().

QRegularExpression::MatchType QRegularExpressionMatchIterator::matchType() const

Возвращает тип совпадения, который был использован для получения этого объекта QRegularExpressionMatchIterator, то есть тип совпадения, который был передан в QRegularExpression::globalMatch().

См. также QRegularExpression::globalMatch(), regularExpression() и matchOptions().

QRegularExpressionMatch QRegularExpressionMatchIterator::next()

Возвращает результат следующего совпадения и перемещает итератор на одну позицию вперед.

Примечание: Вызов этой функции, когда итератор находится в конце набора результатов, приводит к неопределённым результатам.

QRegularExpressionMatch QRegularExpressionMatchIterator::peekNext() const

Возвращает результат следующего совпадения без перемещения итератора.

Примечание: Вызов этой функции, когда итератор находится в конце набора результатов, приводит к неопределённым результатам.

QRegularExpression QRegularExpressionMatchIterator::regularExpression() const

Возвращает объект QRegularExpression, функция globalMatch() которого вернула этот объект.

См. также QRegularExpression::globalMatch(), matchType() и matchOptions().

void QRegularExpressionMatchIterator::swap(QRegularExpressionMatchIterator &other)

Меняет местами итератор other с этим объектом итератора. Данная операция выполняется очень быстро и никогда не завершается ошибкой.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qregularexpressionmatchiterator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API