QRegularExpressionMatchIterator Class

QRegularExpressionMatchIterator クラスは、QRegularExpression オブジェクトと文字列とのグローバルマッチの結果のイテレータを提供します。詳細...

ヘッダー #include <QRegularExpressionMatchIterator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

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

パブリック関数

QRegularExpressionMatchIterator()
QRegularExpressionMatchIterator(const QRegularExpressionMatchIterator &iterator)
(since 6.1) QRegularExpressionMatchIterator(QRegularExpressionMatchIterator &&iterator)
~QRegularExpressionMatchIterator()
bool hasNext() const
bool isValid() const
QRegularExpression::MatchOptions matchOptions() const
QRegularExpression::MatchType matchType() const
QRegularExpressionMatch next()
QRegularExpressionMatch peekNext() const
QRegularExpression regularExpression() const
void swap(QRegularExpressionMatchIterator &other)
QRegularExpressionMatchIterator &operator=(QRegularExpressionMatchIterator &&iterator)
QRegularExpressionMatchIterator &operator=(const QRegularExpressionMatchIterator &iterator)

詳しい説明

QRegularExpressionMatchIterator オブジェクトは、前方のみの Java ライクなイテレータです。QRegularExpression::globalMatch() 関数を呼び出すことで取得できます。新しい QRegularExpressionMatchIterator は、最初の結果の前に配置されます。その後、hasNext() 関数を呼び出して、さらに結果があるかどうかを確認できます。ある場合は、next() 関数が次の結果を返し、イテレータを進めます。

各結果は、その結果に関するすべての情報(キャプチャされた部分文字列を含む)を保持するQRegularExpressionMatch オブジェクトです。

例えば

// extracts the words
QRegularExpression re("(\\w+)");
QString subject("the quick fox");
QRegularExpressionMatchIterator i = re.globalMatch(subject);
while (i.hasNext()) {
    QRegularExpressionMatch match = i.next();
    // ...
}

さらに、QRegularExpressionMatchIterator は、イテレータを進めずに次の結果を取得するpeekNext() 関数を提供しています。

Qt 6.0からは、QRegularExpression::globalMatch の結果を単純に範囲ベースのforループで使用することも可能です:

// using a raw string literal, R"(raw_characters)", to be able to use "\w"
// without having to escape the backslash as "\\w"
QRegularExpression re(R"(\w+)");
QString subject("the quick fox");
for (const QRegularExpressionMatch &match : re.globalMatch(subject)) {
    // ...
}

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

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

QRegularExpression およびQRegularExpressionMatchも参照して ください。

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

QRegularExpressionMatchIterator::QRegularExpressionMatchIterator()

空の有効な QRegularExpressionMatchIterator オブジェクトを構築します。正規表現にはデフォルトのものが設定され、マッチタイプにはQRegularExpression::NoMatch が、マッチオプションにはQRegularExpression::NoMatchOption が設定されます。

構築されたオブジェクトでhasNext() メンバ関数を呼び出すと、イテレータが有効なマッチのシーケンスで反復処理されていないため、false が返されます。

QRegularExpressionMatchIterator::QRegularExpressionMatchIterator(const QRegularExpressionMatchIterator &iterator)

QRegularExpressionMatchIterator オブジェクトをiterator のコピーとして構築します。

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

[noexcept, since 6.1] QRegularExpressionMatchIterator::QRegularExpressionMatchIterator(QRegularExpressionMatchIterator &&iterator)

iterator から移動して QRegularExpressionMatchIterator オブジェクトを構築します。

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

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

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

[noexcept] QRegularExpressionMatchIterator::~QRegularExpressionMatchIterator()

QRegularExpressionMatchIterator オブジェクトを破棄する。

bool QRegularExpressionMatchIterator::hasNext() const

イテレータの前に少なくとも1つのマッチ結果がある場合はtrue を返し、そうでない場合はfalse を返します。

next()も参照

bool QRegularExpressionMatchIterator::isValid() const

イテレータオブジェクトが、有効なQRegularExpression オブジェクトに対して呼び出されたQRegularExpression::globalMatch() 関数の結果として取得された場合はtrue を返し、QRegularExpression が無効な場合はfalse を返す。

QRegularExpression::globalMatch() およびQRegularExpression::isValid()も参照してください

QRegularExpression::MatchOptions QRegularExpressionMatchIterator::matchOptions() const

このQRegularExpressionMatchIterator オブジェクトを取得するために使用されたマッチオプション、つまりQRegularExpression::globalMatch() に渡されたマッチオプションを返します。

QRegularExpression::globalMatch()、regularExpression()、matchType()も参照

QRegularExpression::MatchType QRegularExpressionMatchIterator::matchType() const

このQRegularExpressionMatchIterator オブジェクトを取得するために使用されたマッチタイプ、つまりQRegularExpression::globalMatch() に渡されたマッチタイプを返します。

QRegularExpression::globalMatch()、regularExpression()、matchOptions()も参照

QRegularExpressionMatch QRegularExpressionMatchIterator::next()

次のマッチ結果を返し、イテレータを1つ進めます。

注意: イテレータが結果セットの末尾にあるときにこの関数を呼び出すと、結果が未定義になります。

QRegularExpressionMatch QRegularExpressionMatchIterator::peekNext() const

イテレータを移動せずに、次のマッチ結果を返します。

注意: イテレータが結果セットの末尾にあるときにこの関数を呼び出すと、結果が未定義になります。

QRegularExpression QRegularExpressionMatchIterator::regularExpression() const

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

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

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

このイテレータをother と交換する。この操作は非常に高速で、失敗することはない。

[noexcept] QRegularExpressionMatchIterator &QRegularExpressionMatchIterator::operator=(QRegularExpressionMatchIterator &&iterator)

Move-このオブジェクトにiterator を代入し、その結果への参照を返す。

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

QRegularExpressionMatchIterator &QRegularExpressionMatchIterator::operator=(const QRegularExpressionMatchIterator &iterator)

イテレータiterator をこのオブジェクトに割り当て、コピーへの参照を返します。

© 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.