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