Класс QRegularExpressionMatch
Класс QRegularExpressionMatch предоставляет результаты сопоставления QRegularExpression со строкой. Подробнее...
| Заголовок: | #include <QRegularExpressionMatch> |
| qmake: | QT += core |
| С момента: | Qt 5.0 |
Этот класс был представлен в Qt 5.0.
Примечание: Все функции в этом классе являются реентерабельными.
Открытые функции
| 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 |
| int | capturedEnd(int nth = 0) const |
| QStringList | capturedTexts() const |
| QStringView | capturedView(int nth = 0) const |
| QStringView | capturedView(QStringView name) const |
| bool | hasMatch() const |
| bool | hasPartialMatch() const |
| bool | isValid() const |
Связанные нечлены
| 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.
Документация по членам-функциям
QRegularExpressionMatch::QRegularExpressionMatch(const QRegularExpressionMatch &match)
Конструирует результат сопоставления, скопировав результат заданного match.
См. также operator=().
QRegularExpressionMatch::QRegularExpressionMatch()
Конструирует допустимый, пустой объект QRegularExpressionMatch. Регулярное выражение установлено с использованием конструктора по умолчанию; тип совпадения — QRegularExpression::NoMatch, а параметры совпадения — QRegularExpression::NoMatchOption.
Объект сообщит об отсутствии совпадения через члены-функции hasMatch() и hasPartialMatch().
Эта функция была добавлена в Qt 5.1.
QRegularExpressionMatch &QRegularExpressionMatch::operator=(QRegularExpressionMatch &&match)
Перемещает результат сопоставления match в этот объект и возвращает ссылку на копию.
QRegularExpressionMatch &QRegularExpressionMatch::operator=(const QRegularExpressionMatch &match)
Присваивает результат сопоставления match этому объекту и возвращает ссылку на копию.
QRegularExpressionMatch::~QRegularExpressionMatch()
Уничтожает результат сопоставления.
QString QRegularExpressionMatch::captured(int nth = 0) const
Возвращает подстроку, захваченную nth-й группой захвата.
Если nth-я группа захвата не захватила строку или такой группы нет, возвращает пустую QString.
Примечание: Неявная группа захвата с номером 0 захватывает подстроку, соответствующую всему шаблону.
См. также capturedRef(), capturedView(), lastCapturedIndex(), capturedStart(), capturedEnd(), capturedLength() и QString::isNull().
QString QRegularExpressionMatch::captured(const QString &name) const
Возвращает подстроку, захваченную группой захвата с именем name.
Если группа захвата с именем name не захватила строку или такая группа не существует, возвращает пустую QString.
См. также capturedRef(), capturedView(), capturedStart(), capturedEnd(), capturedLength() и QString::isNull().
QString QRegularExpressionMatch::captured(QStringView name) const
Возвращает подстроку, захваченную группой захвата с именем name.
Если группа захвата с именем name не захватила строку или такая группа не существует, возвращает пустую QString.
Данная функция была добавлена в Qt 5.10.
См. также capturedRef(), capturedView(), capturedStart(), capturedEnd(), capturedLength() и QString::isNull().
int QRegularExpressionMatch::capturedEnd(int nth = 0) const
Возвращает смещение внутри строки-субъекта сразу после конечной позиции подстроки, захваченной nth-й группой захвата. Если nth-я группа захвата не захватила строку или не существует, возвращает -1.
См. также capturedStart(), capturedLength() и captured().
int QRegularExpressionMatch::capturedEnd(const QString &name) const
Возвращает смещение внутри строки-субъекта сразу после конечной позиции подстроки, захваченной группой захвата с именем name. Если группа захвата с именем name не захватила строку или не существует, возвращает -1.
См. также capturedStart(), capturedLength() и captured().
int QRegularExpressionMatch::capturedEnd(QStringView name) const
Возвращает смещение внутри строки-субъекта сразу после конечной позиции подстроки, захваченной группой захвата с именем name. Если группа захвата с именем name не захватила строку или не существует, возвращает -1.
Данная функция была добавлена в Qt 5.10.
См. также capturedStart(), capturedLength() и captured().
int QRegularExpressionMatch::capturedLength(int nth = 0) const
Возвращает длину подстроки, захваченной nth-й группой захвата.
Примечание: Данная функция возвращает 0, если nth-я группа захвата не захватила строку или не существует.
См. также capturedStart(), capturedEnd() и captured().
int QRegularExpressionMatch::capturedLength(const QString &name) const
Возвращает длину подстроки, захваченной группой захвата с именем name.
Примечание: Данная функция возвращает 0, если группа захвата с именем name не захватила строку или не существует.
См. также capturedStart(), capturedEnd() и captured().
int QRegularExpressionMatch::capturedLength(QStringView name) const
Возвращает длину подстроки, захваченной группой захвата с именем name.
Примечание: Данная функция возвращает 0, если группа захвата с именем name не захватила строку или не существует.
Данная функция была добавлена в Qt 5.10.
См. также capturedStart(), capturedEnd() и captured().
QStringRef QRegularExpressionMatch::capturedRef(int nth = 0) const
Возвращает ссылку на подстроку, захваченную nth-й группой захвата.
Если nth-я группа захвата не захватила строку или такой группы нет, возвращает пустую QStringRef.
Примечание: Неявная группа захвата с номером 0 захватывает подстроку, соответствующую всему шаблону.
См. также captured(), capturedView(), lastCapturedIndex(), capturedStart(), capturedEnd(), capturedLength() и QStringRef::isNull().
QStringRef QRegularExpressionMatch::capturedRef(const QString &name) const
Возвращает ссылку на строку, захваченную группой захвата с именем name.
Если группа захвата с именем name не захватила строку или такая группа не существует, возвращает пустую QStringRef.
См. также captured(), capturedView(), capturedStart(), capturedEnd(), capturedLength() и QStringRef::isNull().
QStringRef QRegularExpressionMatch::capturedRef(QStringView name) const
Возвращает ссылку на строку, захваченную группой захвата с именем name.
Если группа захвата с именем name не захватила строку или такая группа не существует, возвращает пустую QStringRef.
Данная функция была добавлена в Qt 5.10.
См. также captured(), capturedView(), capturedStart(), capturedEnd(), capturedLength() и QStringRef::isNull().
int QRegularExpressionMatch::capturedStart(int nth = 0) const
Возвращает смещение внутри строки-субъекта, соответствующее начальной позиции подстроки, захваченной nth-й группой захвата. Если nth-я группа захвата не захватила строку или не существует, возвращает -1.
См. также capturedEnd(), capturedLength() и captured().
int QRegularExpressionMatch::capturedStart(const QString &name) const
Возвращает смещение внутри строки-субъекта, соответствующее начальной позиции подстроки, захваченной группой захвата с именем name. Если группа захвата с именем name не захватила строку или не существует, возвращает -1.
См. также capturedEnd(), capturedLength() и captured().
int 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(), capturedRef(), lastCapturedIndex(), capturedStart(), capturedEnd(), capturedLength() и QStringView::isNull().
QStringView QRegularExpressionMatch::capturedView(QStringView name) const
Возвращает представление строки, захваченной группой захвата с именем name.
Если группа захвата с именем name не захватила строку или такая группа не существует, возвращает пустое QStringView.
Эта функция была добавлена в Qt 5.10.
См. также captured(), capturedRef(), capturedStart(), capturedEnd(), capturedLength() и QStringRef::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-5.15/qregularexpressionmatch.html