QRegularExpressionMatchIterator Class

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

Header: #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 をこのオブジェクトに代入し、コピーへの参照を返します。

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