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() 関数を使用すると、キャプチャした部分文字列の長さを取得できます。
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 という名前のキャプチャグループが件名文字列の何かをキャプチャした場合は真を、そうでない場合 (またはname というキャプチャグループが存在しない場合) は偽を返します。
注意: 正規表現内の捕捉グループによっては、正規表現がマッチしても 何も捕捉していない場合があります。これは、例えば、パターン内で条件演算子を使用している場合に起こります:
QRegularExpressionre("([a-z]+)|([A-Z]+)");QRegularExpressionMatchm=re.match("UPPERCASE");if(m.hasMatch()) { { 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 のキャプチャグループが件名文字列の何かをキャプチャした場合は true を返し、そうでない場合 (またはそのようなキャプチャグループがない場合) は false を返します。
注意: 暗黙の捕捉グループ番号 0 は、パターン全体でマッチした部分文字列を捕捉します。
注意 : 正規表現内のいくつかの捕捉グループは、正規表現がマッチしても 何も捕捉しないかもしれません。これは、例えば、パターン中で条件演算子が使われている場合に起こります:
QRegularExpressionre("([a-z]+)|([A-Z]+)");QRegularExpressionMatchm=re.match("UPPERCASE");if(m.hasMatch()) { { 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::MatchType 、およびhasMatch()も参照のこと 。
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 に書き込む。
デバッグのテクニックも参照してください 。
© 2025 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.