QRegularExpressionMatch Class

QRegularExpressionMatch クラスは、QRegularExpression と文字列のマッチング結果を提供します。詳細...

Header: #include <QRegularExpressionMatch>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

注意:このクラスの関数はすべてリエントラントです。

パブリック関数

QRegularExpressionMatch()
QRegularExpressionMatch(const QRegularExpressionMatch &match)
(since 6.1) QRegularExpressionMatch(QRegularExpressionMatch &&match)
~QRegularExpressionMatch()
QString captured(QAnyStringView name) const
QString captured(int nth = 0) const
qsizetype capturedEnd(QAnyStringView name) const
qsizetype capturedEnd(int nth = 0) const
qsizetype capturedLength(QAnyStringView name) const
qsizetype capturedLength(int nth = 0) const
qsizetype capturedStart(QAnyStringView name) const
qsizetype capturedStart(int nth = 0) const
QStringList capturedTexts() const
QStringView capturedView(QAnyStringView name) const
QStringView capturedView(int nth = 0) const
(since 6.3) bool hasCaptured(QAnyStringView name) const
(since 6.3) bool hasCaptured(int nth) 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=(QRegularExpressionMatch &&match)
QRegularExpressionMatch &operator=(const QRegularExpressionMatch &match)
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() 関数を使用すると、キャプチャした部分文字列の長さを取得できます。

captured(i) == capturedTexts().at(i)便利な関数capturedTexts() は、キャプチャされたすべての部分文字列 (パターン全体でマッチした部分文字列を含む) を、キャプチャ・グループでキャプチャされた順に返します。

regularExpression ()関数を呼び出すことで、対象文字列がマッチしたQRegularExpression オブジェクトを取得することができます。matchType ()関数を呼び出すことで、マッチタイプを、matchOptions ()関数を呼び出すことで、マッチオプションを取得することができます。

Qt 正規表現クラスについての詳細はQRegularExpression のドキュメントを参照してください。

QRegularExpressionも参照して ください。

メンバ関数のドキュメント

QRegularExpressionMatch::QRegularExpressionMatch()

有効な空の QRegularExpressionMatch オブジェクトを構築します。マッチタイプはQRegularExpression::NoMatch に、マッチオプションはQRegularExpression::NoMatchOption に設定されます。

このオブジェクトは、hasMatch() およびhasPartialMatch() メンバ関数を通して、マッチしないことを報告します。

QRegularExpressionMatch::QRegularExpressionMatch(const QRegularExpressionMatch &match)

与えられたmatch の結果をコピーして、マッチ結果を構築します。

operator=()も参照してください

[noexcept, since 6.1] QRegularExpressionMatch::QRegularExpressionMatch(QRegularExpressionMatch &&match)

指定されたmatch から結果を移動して一致結果を構築します。

移動元の QRegularExpressionMatch は、破棄または代入しかできないことに注意してください。デストラクタや代入演算子以外の関数を呼び出した場合の効果は未定義です。

この関数はQt 6.1で導入されました。

operator=()も参照してください

[noexcept] QRegularExpressionMatch::~QRegularExpressionMatch()

マッチ結果を破棄します。

QString QRegularExpressionMatch::captured(QAnyStringView name) const

name という名前の捕捉グループによって捕捉された部分文字列を返します。

名前付きキャプチャグループname が文字列をキャプチャしなかった場合、またはname という名前のキャプチャグループが存在しない場合、NULLQString を返します。

注意: Qt 6.8 より前のバージョンでは、この関数はQAnyStringView ではなくQString またはQStringView を取ります。

capturedView(),capturedStart(),capturedEnd(),capturedLength(),QString::isNull()も参照

QString QRegularExpressionMatch::captured(int nth = 0) const

nth キャプチャ・グループによってキャプチャされた部分文字列を返します。

nth キャプチャ・グループが文字列をキャプチャしなかった場合、またはそのようなキャプチャ・グループが存在しない場合は、NULLQString を返します。

注意: 暗黙の捕捉グループ番号 0 は、パターン全体でマッチした部分文字列を捕捉します。

capturedView()、lastCapturedIndex()、capturedStart()、capturedEnd()、capturedLength()、QString::isNull()も参照

qsizetype QRegularExpressionMatch::capturedEnd(QAnyStringView name) const

name という名前の捕捉グループによって捕捉された部分文字列の終了位置の直後の、対象文字列内のオフセットを返します。name という名前のキャプチャグループが文字列をキャプチャしていないか、存在しない場合は -1 を返します。

注意: Qt 6.8 より前のバージョンでは、この関数はQAnyStringView ではなくQString またはQStringView を取ります。

capturedStart()、capturedLength()、captured()も参照してください

qsizetype QRegularExpressionMatch::capturedEnd(int nth = 0) const

nth キャプチャグループによってキャプチャされた部分文字列の終了位置の直後の、対象文字列内のオフセットを返します。nth キャプチャ・グループが文字列をキャプチャしていないか、存在しない場合は -1 を返します。

capturedStart()、capturedLength()、captured()も参照

qsizetype QRegularExpressionMatch::capturedLength(QAnyStringView name) const

name という名前の捕捉グループが捕捉した部分文字列の長さを返す。

注意: この関数は、name という名前のキャプチャグループが文字列をキャプチャしていないか、存在しない場合に 0 を返します。

注意 : Qt 6.8 より前のバージョンでは、この関数はQAnyStringView ではなくQString またはQStringView を取ります。

capturedStart()、capturedEnd()、captured()も参照してください

qsizetype QRegularExpressionMatch::capturedLength(int nth = 0) const

nth キャプチャグループによってキャプチャされた部分文字列の長さを返します。

注意: この関数は、nth キャプチャ・グループが文字列をキャプチャしなかったか、 存在しなかった場合に 0 を返す。

capturedStart()、capturedEnd()、captured()も参照

qsizetype QRegularExpressionMatch::capturedStart(QAnyStringView name) const

name という名前の捕捉グループによって捕捉された部分文字列の開始位置に対応する、 対象文字列内のオフセットを返します。name という名前のキャプチャ・グループが文字列をキャプチャしていないか、存在しない場合は -1 を返します。

注意: Qt 6.8 より前のバージョンでは、この関数はQAnyStringView ではなくQString またはQStringView を取ります。

capturedEnd()、capturedLength()、captured()も参照してください

qsizetype QRegularExpressionMatch::capturedStart(int nth = 0) const

nth キャプチャグループによってキャプチャされた部分文字列の開始位置に対応する、対象文字列内のオフセットを返します。nth キャプチャ・グループが文字列をキャプチャしていないか、存在しない場合は -1 を返します。

capturedEnd()、capturedLength()、captured()も参照

QStringList QRegularExpressionMatch::capturedTexts() const

捕捉グループによって捕捉されたすべての文字列のリストを、 パターン文字列中にグループ自身が現れる順番で返します。このリストには、暗黙のキャプチャグループ番号 0 が含まれており、 パターン全体でマッチした部分文字列をキャプチャしています。

QStringView QRegularExpressionMatch::capturedView(QAnyStringView name) const

name という名前の捕捉グループによって捕捉された文字列のビューを返します。

名前付きキャプチャグループname が文字列をキャプチャしなかった場合、またはname という名前のキャプチャグループが存在しない場合は、NULLQStringView を返します。

注意: Qt 6.8 より前のバージョンでは、この関数はQAnyStringView ではなくQString またはQStringView を取ります。

captured(),capturedStart(),capturedEnd(),capturedLength(),QStringView::isNull()も参照

QStringView QRegularExpressionMatch::capturedView(int nth = 0) const

nth キャプチャ・グループによってキャプチャされた部分文字列のビューを返します。

nth キャプチャ・グループが文字列をキャプチャしなかった場合、またはそのようなキャプチャ・グループが存在しない場合は、NULLQStringView を返します。

注意: 暗黙の捕捉グループ番号 0 は、パターン全体でマッチした部分文字列を捕捉します。

captured()、lastCapturedIndex()、capturedStart()、capturedEnd()、capturedLength()、QStringView::isNull()も参照

[since 6.3] bool QRegularExpressionMatch::hasCaptured(QAnyStringView name) const

name という名前の捕捉グループが件名文字列の何かを捕捉した場合は true を返し、そうでない場合 (またはname という名前の捕捉グループがない場合) は false を返します。

注意: 正規表現内の一部の捕捉グループは、正規表現がマッチしても何も捕捉していないかもしれません。これは、例えば、パターンの中で条件演算子が使われている場合に起こります:

QRegularExpression re("([a-z]+)|([A-Z]+)");
QRegularExpressionMatch m = re.match("UPPERCASE");
if (m.hasMatch()) {
    qDebug() << m.hasCaptured(0); // true
    qDebug() << m.hasCaptured(1); // false
    qDebug() << m.hasCaptured(2); // true
}

同様に、キャプチャグループが長さ0の部分文字列をキャプチャすることもあります。この関数は、そのようなキャプチャグループに対してtrue を返します。

注意: Qt 6.8 より前のバージョンでは、この関数はQAnyStringView ではなくQString またはQStringView を取っていました。

この関数はQt 6.3で導入されました。

captured() およびhasMatch()も参照してください

[since 6.3] bool QRegularExpressionMatch::hasCaptured(int nth) const

nth キャプチャグループが subject 文字列内の何かをキャプチャした場合は true を返し、そうでない場合 (またはそのようなキャプチャグループがない場合)は false を返します。

注意 : 暗黙の捕捉グループ番号 0 は、パターン全体でマッチした部分文字列を捕捉します。

注意 : 正規表現内のいくつかの捕捉グループは、正規表現がマッチしても 何も捕捉しないかもしれません。これは、例えば、パターンの中で条件演算子が使われている場合に起こります:

QRegularExpression re("([a-z]+)|([A-Z]+)");
QRegularExpressionMatch m = re.match("UPPERCASE");
if (m.hasMatch()) {
    qDebug() << m.hasCaptured(0); // true
    qDebug() << m.hasCaptured(1); // false
    qDebug() << m.hasCaptured(2); // true
}

同様に、キャプチャグループが長さ0の部分文字列をキャプチャすることもあります。この関数は、そのようなキャプチャグループに対してtrue を返します。

この関数はQt 6.3で導入されました。

captured(),lastCapturedIndex(),hasMatch()も参照してください

bool QRegularExpressionMatch::hasMatch() const

正規表現が対象の文字列にマッチした場合はtrue を、マッチしなかった場合は false を返します。

QRegularExpression::match() およびhasPartialMatch()参照。

bool QRegularExpressionMatch::hasPartialMatch() const

正規表現が対象文字列に部分的にマッチした場合はtrue を返し、そうでない場合は false を返します。

注意: 部分一致を返せるのは、部分一致の型を明示的に使用したマッチのみです。それでも、そのようなマッチが完全に成功した場合、この関数は偽を返し、hasMatch() は真を返します。

QRegularExpression::match()、QRegularExpression::MatchTypehasMatch()も参照

bool QRegularExpressionMatch::isValid() const

有効なQRegularExpression オブジェクトに対してQRegularExpression::match() 関数を呼び出した結果、マッチオブジェクトが得られた場合はtrue を返し、QRegularExpression が無効だった場合はfalse を返す。

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 を返します。

hasCaptured()、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

match() 関数がこのオブジェクトを返したQRegularExpression オブジェクトを返します。

QRegularExpression::match()、matchType() およびmatchOptions() も参照

[noexcept] void QRegularExpressionMatch::swap(QRegularExpressionMatch &other)

マッチ結果other を、このマッチ結果と入れ替えます。この操作は非常に高速で、失敗することはありません。

[noexcept] QRegularExpressionMatch &QRegularExpressionMatch::operator=(QRegularExpressionMatch &&match)

move-マッチ結果match をこのオブジェクトに代入し、その結果への参照を返します。

移動された結果QRegularExpressionMatch は、破壊されるか代入されるかしかないことに注意。デストラクタや代入演算子以外の関数を呼び出した場合の効果は未定義です。

QRegularExpressionMatch &QRegularExpressionMatch::operator=(const QRegularExpressionMatch &match)

マッチ結果match をこのオブジェクトに代入し、そのコピーへの参照を返します。

関連する非会員

QDebug operator<<(QDebug debug, const QRegularExpressionMatch &match)

デバッグのために、マッチオブジェクトmatch をデバッグオブジェクトdebug に書き込みます。

デバッグテクニックも参照してください

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。