QRegularExpressionMatch Class
QRegularExpressionMatch クラスは、QRegularExpression を文字列と照合した結果を提供します。詳細...
| ヘッダー: | #include <QRegularExpressionMatch> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- 継承されたメンバーを含む、すべてのメンバーの一覧
- QRegularExpressionMatch は、「暗黙的に共有されるクラス」および「文字列データ用クラス」の一部です。
注:このクラスのすべての関数は再入可能です。
パブリック関数
| 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() 関数を使用して取得できます。
便利な関数 `capturedTexts()` は、キャプチャグループによってキャプチャされた順序(つまり `captured(i) == capturedTexts().at(i)` の順序)で、すべてのキャプチャされた部分文字列(パターン全体に一致した部分文字列を含む)を一度に返します。
regularExpression() 関数を呼び出すことで、対象文字列と照合されたQRegularExpression オブジェクトを取得できます。また、matchType() およびmatchOptions() をそれぞれ呼び出すことで、照合タイプおよび照合オプションを取得することもできます。
Qt の正規表現クラスに関する詳細については、『QRegularExpression 』のドキュメントを参照してください。
QRegularExpressionも参照してください 。
メンバ関数のドキュメント
QRegularExpressionMatch::QRegularExpressionMatch()
有効な空の QRegularExpressionMatch オブジェクトを生成します。正規表現はデフォルトのコンストラクタで生成されたものが設定され、マッチタイプは `QRegularExpression::NoMatch `、マッチオプションは `QRegularExpression::NoMatchOption` に設定されます。
このオブジェクトは、hasMatch() およびhasPartialMatch() メンバー関数を通じて、一致がないことを報告します。
QRegularExpressionMatch::QRegularExpressionMatch(const QRegularExpressionMatch &match)
指定されたmatch の結果をコピーして、マッチ結果を生成します。
operator=()も参照してください 。
[constexpr noexcept default, 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` という名前のキャプチャグループが存在しない場合は、ヌル `QString` を返します。
注: Qt 6.8 以前のバージョンでは 、この関数はQAnyStringView ではなく、QString またはQStringView を受け取っていましたが、現在は を受け取ります。
関連項目: capturedView()、capturedStart()、capturedEnd()、capturedLength()、およびQString::isNull()。
QString QRegularExpressionMatch::captured(int nth = 0) const
nth キャプチャグループによってキャプチャされた部分文字列を返します。
nth キャプチャグループが文字列をキャプチャしなかった場合、またはそのようなキャプチャグループが存在しない場合は、null(QString )を返します。
注: 暗黙のキャプチャグループ番号 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` という名前のキャプチャグループが存在しない場合は、null `QStringView` を返します。
注: Qt 6.8 以前のバージョンでは 、この関数はQAnyStringView ではなく、QString またはQStringView を引数としていました。
関連項目: captured()、capturedStart()、capturedEnd()、capturedLength()、およびQStringView::isNull()。
QStringView QRegularExpressionMatch::capturedView(int nth = 0) const
nth キャプチャグループによってキャプチャされた部分文字列のビューを返します。
nth のキャプチャグループが文字列をキャプチャしなかった場合、またはそのようなキャプチャグループが存在しない場合は、nullのQStringView を返します。
注: 暗黙のキャプチャグループ番号 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` を返します。
注: 部分一致の結果となるのは、部分一致のタイプのいずれかを明示的に使用した一致のみです 。ただし、そのような一致が完全に成功した場合でも、この関数は false を返しますが、hasMatch() は true を返します。
関連項目: QRegularExpression::match()、QRegularExpression::MatchType 、およびhasMatch()。
bool QRegularExpressionMatch::isValid() const
有効なQRegularExpression オブジェクトに対してQRegularExpression::match()関数が呼び出され、その結果として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)
match のマッチ結果をこのオブジェクトにコピー代入し、その結果への参照を返します。
なお、移動元の `QRegularExpressionMatch ` に対しては、破棄するか、代入を行うことしかできません。デストラクタや代入演算子以外の関数を呼び出した場合の効果は未定義です。
QRegularExpressionMatch &QRegularExpressionMatch::operator=(const QRegularExpressionMatch &match)
このオブジェクトに試合結果match を割り当て、そのコピーへの参照を返します。
関連する非メンバー
QDebug operator<<(QDebug debug, const QRegularExpressionMatch &match)
デバッグの目的で、マッチオブジェクト `match ` をデバッグオブジェクト `debug ` に書き込みます。
「デバッグ手法」も参照してください 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.