PySide6.QtCore.QRegularExpressionMatchIterator

class QRegularExpressionMatchIterator

QRegularExpressionMatchIterator 类提供了一个迭代器,用于遍历QRegularExpression对象与字符串的全局匹配结果。更多

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

一个QRegularExpressionMatchIterator对象是一个仅向前移动的类似Java的迭代器;它可以通过调用globalMatch()函数获得。一个新的QRegularExpressionMatchIterator将定位在第一个结果之前。然后你可以调用hasNext()函数来检查是否有更多的结果可用;如果有,next()函数将返回下一个结果并推进迭代器。

每个结果都是一个QRegularExpressionMatch对象,包含该结果的所有信息(包括捕获的子字符串)。

例如:

# extracts the words
re = QRegularExpression("(\\w+)")
subject = QString("the quick fox")
i = re.globalMatch(subject)
while i.hasNext():
    match = i.next()
    # ...

此外,QRegularExpressionMatchIterator 提供了一个 peekNext() 函数,用于获取下一个结果而推进迭代器。

从 Qt 6.0 开始,也可以在基于范围的 for 循环中简单地使用 globalMatch 的结果,例如像这样:

# using a raw string literal, R"(raw_characters)", to be able to use "\w"
# without having to escape the backslash as "\\w"
re = QRegularExpression(R"(\w+)")
subject = QString("the quick fox")
for match in re.globalMatch(subject):
    # ...

你可以通过调用regularExpression()函数来检索主题字符串所匹配的QRegularExpression对象;匹配类型和匹配选项也可以通过分别调用matchType()matchOptions()来获取。

请参阅QRegularExpression文档以获取有关Qt正则表达式类的更多信息。

__init__()

构造一个空的、有效的QRegularExpressionMatchIterator对象。正则表达式设置为默认构造的;匹配类型设置为NoMatch,匹配选项设置为NoMatchOption

在构造的对象上调用hasNext()成员函数将返回false,因为迭代器没有在有效的匹配序列上进行迭代。

__init__(iterator)
Parameters:

迭代器QRegularExpressionMatchIterator

构造一个QRegularExpressionMatchIterator对象作为iterator的副本。

另请参阅

operator=()

hasNext()
Return type:

布尔

如果迭代器前面至少有一个匹配结果,则返回true;否则返回false

另请参阅

next()

isValid()
Return type:

布尔

如果迭代器对象是通过在有效的QRegularExpression对象上调用globalMatch()函数获得的,则返回true;如果QRegularExpression无效,则返回false

另请参阅

globalMatch() isValid()

matchOptions()
Return type:

MatchOption的组合

返回用于获取此QRegularExpressionMatchIterator对象的匹配选项,即传递给globalMatch()的匹配选项。

matchType()
Return type:

MatchType

返回用于获取此QRegularExpressionMatchIterator对象的匹配类型,即传递给globalMatch()的匹配类型。

next()
Return type:

QRegularExpressionMatch

返回下一个匹配结果并将迭代器前进一个位置。

注意

当迭代器位于结果集的末尾时调用此函数会导致未定义的结果。

peekNext()
Return type:

QRegularExpressionMatch

返回下一个匹配结果而不移动迭代器。

注意

当迭代器位于结果集的末尾时调用此函数会导致未定义的结果。

regularExpression()
Return type:

QRegularExpression

返回其globalMatch()函数返回此对象的QRegularExpression对象。

swap(other)
Parameters:

其他QRegularExpressionMatchIterator

将此迭代器对象与迭代器 other 交换。此操作非常快速且永远不会失败。