Класс QRegularExpressionMatch
Класс QRegularExpressionMatch предоставляет результаты сопоставления QRegularExpression со строкой. Подробнее...
| Заголовок: | #include <QRegularExpressionMatch> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Начиная с: | Qt 5.0 |
Примечание: Все функции в этом классе являются взаимоисключающими.
Открытые функции
| QRegularExpressionMatch(QRegularExpressionMatch &&match) | |
| QRegularExpressionMatch(const QRegularExpressionMatch &match) | |
| QRegularExpressionMatch() | |
| QRegularExpressionMatch & | operator=(QRegularExpressionMatch &&match) |
| QRegularExpressionMatch & | operator=(const QRegularExpressionMatch &match) |
| ~QRegularExpressionMatch() | |
| QString | captured(int nth = 0) const |
| QString | captured(const QString &name) const |
| QString | captured(QStringView name) const |
| qsizetype | capturedEnd(int nth = 0) const |
| qsizetype | capturedEnd(const QString &name) const |
| qsizetype | capturedEnd(QStringView name) const |
| qsizetype | capturedLength(int nth = 0) const |
| qsizetype | capturedLength(const QString &name) const |
| qsizetype | capturedLength(QStringView name) const |
| qsizetype | capturedStart(int nth = 0) const |
| qsizetype | capturedStart(const QString &name) const |
| qsizetype | capturedStart(QStringView name) const |
| QStringList | capturedTexts() const |
| QStringView | capturedView(int nth = 0) const |
| QStringView | capturedView(QStringView name) const |
| bool | hasMatch() const |
| bool | hasPartialMatch() const |
| bool | isValid() const |
| int | lastCapturedIndex() const |
| QRegularExpression::MatchOptions | matchOptions() const |
| QRegularExpression::MatchType | matchType() const |
| QRegularExpression | regularExpression() const |
| void | swap(QRegularExpressionMatch &other) |
Связанные внешние члены
| QDebug | operator<<(QDebug debug, const QRegularExpressionMatch &match) |
Подробное описание
Объект QRegularExpressionMatch можно получить, вызвав функцию QRegularExpression::match() или как отдельный результат глобального сопоставления из QRegularExpressionMatchIterator.
Успех или неудача попытки сопоставления могут быть проверены путем вызова функции hasMatch(). QRegularExpressionMatch также сообщает об успешном частичном сопоставлении с помощью функции hasPartialMatch().
Кроме того, QRegularExpressionMatch возвращает подстроки, захваченные захватывающими группами в строке шаблона. Неявная захватывающая группа с индексом 0 захватывает результат всего сопоставления. Функция captured() возвращает каждую захваченную подстроку, либо по индексу захватывающей группы, либо по ее имени:
QRegularExpression re("(\\d\\d) (?<name>\\w+)");
QRegularExpressionMatch match = re.match("23 Jordan");
if (match.hasMatch()) {
QString number = match.captured(1); // first == "23"
QString name = match.captured("name"); // name == "Jordan"
} Для каждой захваченной подстроки можно запросить ее начальные и конечные смещения в целевой строке, вызвав функции capturedStart() и capturedEnd() соответственно. Длина каждой захваченной подстроки доступна с помощью функции capturedLength().
Вспомогательная функция capturedTexts() вернет все захваченные подстроки сразу (включая подстроку, соответствующую всему шаблону) в порядке, в котором они были захвачены захватывающими группами; то есть captured(i) == capturedTexts().at(i).
Вы можете получить объект QRegularExpression, с которым была сопоставлена целевая строка, вызвав функцию regularExpression(); тип сопоставления и параметры сопоставления также доступны путем вызова matchType() и matchOptions() соответственно.
Дополнительную информацию о классах регулярных выражений Qt см. в документации по QRegularExpression.
См. также QRegularExpression.
Документация по функциям-членам
[since 6.1] QRegularExpressionMatch::QRegularExpressionMatch(QRegularExpressionMatch &&match)
Конструирует результат сопоставления, перемещая результат из заданного match.
Обратите внимание, что QRegularExpressionMatch, из которого были перемещены данные, может быть только уничтожен или присвоен. Эффект вызова других функций, кроме деструктора или одного из операторов присваивания, не определен.
Эта функция была добавлена в Qt 6.1.
См. также operator=().
QRegularExpressionMatch::QRegularExpressionMatch(const QRegularExpressionMatch &match)
Конструирует результат сопоставления, копируя результат заданного match.
См. также operator=().
[since 5.1] QRegularExpressionMatch::QRegularExpressionMatch()
Конструирует допустимый, пустой объект QRegularExpressionMatch. Регулярное выражение устанавливается в значение по умолчанию; тип сопоставления — в QRegularExpression::NoMatch, а параметры сопоставления — в QRegularExpression::NoMatchOption.
Объект не сообщит о совпадении через члены-функции hasMatch() и hasPartialMatch().
Эта функция была введена в Qt 5.1.
QRegularExpressionMatch &QRegularExpressionMatch::operator=(QRegularExpressionMatch &&match)
Перемещающее присваивание результата сопоставления match этому объекту и возвращает ссылку на результат.
Обратите внимание, что перемещённый QRegularExpressionMatch может быть только уничтожен или присвоен. Эффект вызова других функций, кроме деструктора или одного из операторов присваивания, не определён.
QRegularExpressionMatch &QRegularExpressionMatch::operator=(const QRegularExpressionMatch &match)
Присваивает результат сопоставления match этому объекту и возвращает ссылку на копию.
QRegularExpressionMatch::~QRegularExpressionMatch()
Уничтожает результат сопоставления.
QString QRegularExpressionMatch::captured(int nth = 0) const
Возвращает подстроку, захваченную nth-й группой захвата.
Если nth-я группа захвата не захватила строку или такая группа не существует, возвращает пустой QString.
Примечание: Неявная группа захвата с номером 0 захватывает подстроку, соответствующую всему шаблону.
См. также capturedView(), lastCapturedIndex(), capturedStart(), capturedEnd(), capturedLength(), и QString::isNull().
QString QRegularExpressionMatch::captured(const QString &name) const
Возвращает подстроку, захваченную группой захвата с именем name.
Если группа захвата с именем name не захватила строку или такая группа не существует, возвращает пустой QString.
См. также capturedView(), capturedStart(), capturedEnd(), capturedLength(), и QString::isNull().
QString QRegularExpressionMatch::captured(QStringView name) const
Возвращает подстроку, захваченную группой захвата с именем name.
Если группа захвата с именем name не захватила строку или такая группа не существует, возвращает пустой QString.
Эта функция была введена в Qt 5.10.
См. также capturedView(), capturedStart(), capturedEnd(), capturedLength(), и QString::isNull().
qsizetype QRegularExpressionMatch::capturedEnd(int nth = 0) const
Возвращает смещение внутри строки-субъекта сразу после конечной позиции подстроки, захваченной nth-й группой захвата. Если nth-я группа захвата не захватила строку или не существует, возвращает -1.
См. также capturedStart(), capturedLength(), и captured().
qsizetype QRegularExpressionMatch::capturedEnd(const QString &name) const
Возвращает смещение внутри строки-субъекта сразу после конечной позиции подстроки, захваченной группой захвата с именем name. Если группа захвата с именем name не захватила строку или не существует, возвращает -1.
См. также capturedStart(), capturedLength(), и captured().
qsizetype QRegularExpressionMatch::capturedEnd(QStringView name) const
Возвращает смещение внутри строки-субъекта сразу после конечной позиции подстроки, захваченной группой захвата с именем name. Если группа захвата с именем name не захватила строку или не существует, возвращает -1.
Эта функция была введена в Qt 5.10.
См. также capturedStart(), capturedLength(), и captured().
qsizetype QRegularExpressionMatch::capturedLength(int nth = 0) const
Возвращает длину подстроки, захваченной nth-й группой захвата.
Примечание: Функция возвращает 0, если nth-я группа захвата не захватила строку или не существует.
См. также capturedStart(), capturedEnd(), и captured().
qsizetype QRegularExpressionMatch::capturedLength(const QString &name) const
Возвращает длину подстроки, захваченной группой захвата с именем name.
Примечание: Функция возвращает 0, если группа захвата с именем name не захватила строку или не существует.
См. также capturedStart(), capturedEnd(), и captured().
qsizetype QRegularExpressionMatch::capturedLength(QStringView name) const
Возвращает длину подстроки, захваченной группой захвата с именем name.
Примечание: Функция возвращает 0, если группа захвата с именем name не захватила строку или не существует.
Эта функция была введена в Qt 5.10.
См. также capturedStart(), capturedEnd(), и captured().
qsizetype QRegularExpressionMatch::capturedStart(int nth = 0) const
Возвращает смещение внутри строки-субъекта, соответствующее начальной позиции подстроки, захваченной nth-й группой захвата. Если nth-я группа захвата не захватила строку или не существует, возвращает -1.
См. также capturedEnd(), capturedLength(), и captured().
qsizetype QRegularExpressionMatch::capturedStart(const QString &name) const
Возвращает смещение внутри строки-субъекта, соответствующее начальной позиции подстроки, захваченной группой захвата с именем name. Если группа захвата с именем name не захватила строку или не существует, возвращает -1.
См. также capturedEnd(), capturedLength(), и captured().
qsizetype QRegularExpressionMatch::capturedStart(QStringView name) const
Возвращает смещение внутри строки-субъекта, соответствующее начальной позиции подстроки, захваченной группой захвата с именем name. Если группа захвата с именем name не захватила строку или не существует, возвращает -1.
Эта функция была введена в Qt 5.10.
См. также capturedEnd(), capturedLength(), и captured().
QStringList QRegularExpressionMatch::capturedTexts() const
Возвращает список всех строк, захваченных группами захвата, в порядке появления самих групп в строке шаблона. Список включает неявную группу захвата с номером 0, захватывающую подстроку, соответствующую всему шаблону.
QStringView QRegularExpressionMatch::capturedView(int nth = 0) const
Возвращает представление подстроки, захваченной nth-й группой захвата.
Если nth-я группа захвата не захватила строку или такая группа не существует, возвращает пустое QStringView.
Примечание: Неявная группа захвата с номером 0 захватывает подстроку, соответствующую всему шаблону.
Эта функция была введена в Qt 5.10.
См. также captured(), lastCapturedIndex(), capturedStart(), capturedEnd(), capturedLength() и QStringView::isNull().
[since 5.10] QStringView QRegularExpressionMatch::capturedView(QStringView name) const
Возвращает представление строки, захваченной группой захвата с именем name.
Если группа захвата с именем name не захватила строку или группы с таким именем не существует, возвращает нулевое QStringView.
Эта функция была добавлена в Qt 5.10.
См. также captured(), capturedStart(), capturedEnd(), capturedLength() и QStringView::isNull().
bool QRegularExpressionMatch::hasMatch() const
Возвращает true если регулярное выражение совпало с целевой строкой, в противном случае — false.
См. также QRegularExpression::match() и hasPartialMatch().
bool QRegularExpressionMatch::hasPartialMatch() const
Возвращает true если регулярное выражение частично совпало с целевой строкой, в противном случае — false.
Примечание: Только совпадение, явно использующее один из типов частичного совпадения, может привести к частичному совпадению. Тем не менее, если такое совпадение происходит полностью, эта функция вернет false, в то время как hasMatch() вернет true.
См. также QRegularExpression::match(), QRegularExpression::MatchType и hasMatch().
bool QRegularExpressionMatch::isValid() const
Возвращает true если объект сопоставления получен в результате вызова функции QRegularExpression::match() для действительного объекта QRegularExpression; возвращает false если QRegularExpression недействителен.
См. также QRegularExpression::match() и QRegularExpression::isValid().
int QRegularExpressionMatch::lastCapturedIndex() const
Возвращает индекс последней группы захвата, которая что-то захватила, включая неявную группу захвата 0. Это можно использовать для извлечения всех подстрок, которые были захвачены:
QRegularExpressionMatch match = re.match(string);
for (int i = 0; i <= match.lastCapturedIndex(); ++i) {
QString captured = match.captured(i);
// ...
} Обратите внимание, что некоторые из групп захвата с индексом меньше lastCapturedIndex() могли не совпасть и, следовательно, ничего не захватить.
Если регулярное выражение не совпало, эта функция возвращает -1.
См. также captured(), capturedStart(), capturedEnd() и capturedLength().
QRegularExpression::MatchOptions QRegularExpressionMatch::matchOptions() const
Возвращает параметры сопоставления, которые были использованы для получения этого объекта QRegularExpressionMatch, т.е. параметры сопоставления, которые были переданы в QRegularExpression::match() или QRegularExpression::globalMatch().
См. также QRegularExpression::match(), regularExpression() и matchType().
QRegularExpression::MatchType QRegularExpressionMatch::matchType() const
Возвращает тип сопоставления, который был использован для получения этого объекта QRegularExpressionMatch, т.е. тип сопоставления, который был передан в QRegularExpression::match() или QRegularExpression::globalMatch().
См. также QRegularExpression::match(), regularExpression() и matchOptions().
QRegularExpression QRegularExpressionMatch::regularExpression() const
Возвращает объект QRegularExpression, функция match() которого вернула этот объект.
См. также QRegularExpression::match(), matchType() и matchOptions().
void QRegularExpressionMatch::swap(QRegularExpressionMatch &other)
Меняет результаты сопоставления other с этим результатом сопоставления. Эта операция очень быстрая и никогда не терпит неудачу.
Связанные внешние функции
QDebug operator<<(QDebug debug, const QRegularExpressionMatch &match)
Записывает объект сопоставления match в объект отладки debug для целей отладки.
См. также Методы отладки.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qregularexpressionmatch.html