class QRegularExpressionMatch#

QRegularExpressionMatch 提供了对字符串使用 QRegularExpression 匹配的结果。 更多

概述

方法

注释

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

详细描述#

警告

本节包含自动从C++转换为Python的代码片段,可能包含错误。

可以通过调用match()函数或从一个QRegularExpressionMatchIterator 的全局匹配中获得一个QRegularExpressionMatch对象。

可以通过调用hasMatch()函数检查匹配尝试的成功或失败。由于QRegularExpressionMatch也通过hasPartialMatch()函数报告成功的部分匹配。

此外,QRegularExpressionMatch 返回模式字符串中捕获组的捕获子串。索引为0的隐式捕获组捕获整个匹配的结果。函数 captured() 通过捕获组的索引或名称返回每个捕获的子串。

re = QRegularExpression("(\\d\\d) (?\\w+)")
match = re.match("23 Jordan")
if match.hasMatch():
    number = match.captured(1) # first == "23"
    name = match.captured("name") # name == "Jordan"

对于每个捕获的子串,可以通过调用 capturedStart()capturedEnd() 函数分别查询其在主题字符串中的起始和结束偏移量。使用函数 capturedLength() 可获取每个捕获子串的长度。

便利函数 capturedTexts() 将一次性返回所有捕获的子串(包括整个模式匹配的子串)及其顺序,即 captured(i) == capturedTexts().at(i)

您可以调用函数 regularExpression() 获取与主题字符串匹配的 QRegularExpression 对象;通过分别为调用 matchType()matchOptions() 获取匹配类型和匹配选项。

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

__init__(match)#
参数:

matchQRegularExpressionMatch

通过复制给定的 match 结果来构建匹配结果。

另请参阅

operator=()

__init__()

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

对象将通过 hasMatch()hasPartialMatch() 成员函数报告无匹配。

captured(name)#
参数:

name – 字符串

返回类型:

字符串

返回指定捕获组名称 name 捕获的子字符串。

如果命名的捕获组 name 未捕获字符串,或者没有名为 name 的捕获组,则返回一个空的 QString

captured(name)
参数:

name – 字符串

返回类型:

字符串

返回指定捕获组名称 name 捕获的子字符串。

如果命名的捕获组 name 未捕获字符串,或者没有名为 name 的捕获组,则返回一个空的 QString

captured([nth=0])
参数:

nth – 整数

返回类型:

字符串

返回第 nth 个捕获组捕获的子字符串。

如果第 nth 个捕获组没有捕获字符串,或者没有这样的捕获组,则返回一个空的 QString

注释

隐式捕获组编号 0 捕获整个模式匹配的子字符串。

capturedEnd(name)#
参数:

name – 字符串

返回类型:

整型

返回包含指定名称的捕获组的子字符串结束位置在主题字符串中的偏移量。如果名为name的捕获组未捕获任何字符串或不存在,则返回-1。

capturedEnd(name)
参数:

name – 字符串

返回类型:

整型

返回包含指定名称的捕获组的子字符串结束位置在主题字符串中的偏移量。如果名为name的捕获组未捕获任何字符串或不存在,则返回-1。

capturedEnd([nth=0])
参数:

nth – 整数

返回类型:

整型

返回第nth个捕获组的子字符串结束位置在主题字符串中的偏移量。如果第nth个捕获组未捕获任何字符串或不存在,则返回-1。

capturedLength(name)#
参数:

name – 字符串

返回类型:

整型

返回名为name的捕获组捕获的子字符串的长度。

注释

如果名为name的捕获组未捕获任何字符串或不存在,则此函数返回0。

capturedLength(name)
参数:

name – 字符串

返回类型:

整型

返回名为name的捕获组捕获的子字符串的长度。

注释

如果名为name的捕获组未捕获任何字符串或不存在,则此函数返回0。

capturedLength([nth=0])
参数:

nth – 整数

返回类型:

整型

返回由第 nth 个捕获组捕获的子字符串的长度。

注释

如果第 nth 个捕获组没有捕获字符串或不存在,此函数返回 0。

capturedStart(name)#
参数:

name – 字符串

返回类型:

整型

返回与名为 name 的捕获组捕获的子字符串的起始位置相对应的主题字符串内的偏移量。如果名为 name 的捕获组没有捕获字符串或不存在,返回 -1。

capturedStart(name)
参数:

name – 字符串

返回类型:

整型

返回与名为 name 的捕获组捕获的子字符串的起始位置相对应的主题字符串内的偏移量。如果名为 name 的捕获组没有捕获字符串或不存在,返回 -1。

capturedStart([nth=0])
参数:

nth – 整数

返回类型:

整型

返回与第 nth 个捕获组捕获的子字符串的起始位置相对应的主题字符串内的偏移量。如果第 nth 个捕获组没有捕获字符串或不存在,返回 -1。

capturedTexts()#
返回类型:

字符串列表

返回一个列表,其中包含由捕获组捕获的所有字符串,顺序与模式字符串中捕获组的出现顺序相同。列表包括隐含的捕获组编号 0,捕获整个模式的匹配子字符串。

capturedView(name)#
参数:

name – 字符串

返回类型:

字符串

返回名为 name 的捕获组捕获的字符串的视图。

如果名为 name 的捕获组没有捕获字符串,或者没有名为 name 的捕获组,返回一个空的 QStringView

capturedView([nth=0])
参数:

nth – 整数

返回类型:

字符串

返回由第nth捕获组捕获的子字符串视图。

如果第nth捕获组未捕获字符串,或者没有这样的捕获组,则返回空QStringView

注释

隐式捕获组编号 0 捕获整个模式匹配的子字符串。

hasCaptured(name)#
参数:

name – 字符串

返回类型:

bool

hasCaptured(name)
参数:

name – 字符串

返回类型:

bool

hasCaptured(nth)
参数:

nth – 整数

返回类型:

bool

警告

本节包含自动从C++转换为Python的代码片段,可能包含错误。

如果第nth捕获组在主题字符串中捕获了某些内容,则返回true,否则返回false(或如果不存在这样的捕获组)。

注释

隐式捕获组编号 0 捕获整个模式匹配的子字符串。

注释

正则表达式中的某些捕获组即使匹配成功也可能未捕获任何内容。这种情况可能发生在,例如,在模式中使用条件运算符时。

re = QRegularExpression("([a-z]+)|([A-Z]+)")
m = re.match("UPPERCASE")
if m.hasMatch():
    print(m.hasCaptured(0)) # true
    print(m.hasCaptured(1)) # false
    print(m.hasCaptured(2)) # true

同样,捕获组可能捕获长度为0的子字符串;此函数将返回这样的捕获组的true。

hasMatch()#
返回类型:

bool

如果正则表达式与主题字符串匹配,则返回true,否则返回false。

另请参阅

match() hasPartialMatch()

hasPartialMatch()#
返回类型:

bool

如果正则表达式部分匹配了主题字符串,则返回true,否则返回false。

注释

只有显式使用了部分匹配类型之一的匹配才能产生部分匹配。尽管如此,如果此类匹配完全成功,此函数将返回false,而hasMatch()将返回true。

isValid()#
返回类型:

bool

如果匹配对象是从调用有效的match()函数获得的QRegularExpression对象;如果QRegularExpression无效,则返回false。

另请参阅

match() isValid()

lastCapturedIndex()#
返回类型:

整型

警告

本节包含自动从C++转换为Python的代码片段,可能包含错误。

返回最后一个捕获组捕获东西的索引,包括隐含捕获组0。这可以用来提取所有被捕获的子字符串

match = re.match(string)
for i in range(0, match.lastCapturedIndex() + 1):
    captured = match.captured(i)
    # ...

注意,一些索引小于lastCapturedIndex()的捕获组可能没有匹配,因此没有捕获。

如果没有匹配正则表达式,此函数返回-1。

matchOptions()#
返回类型:

结合 MatchOption

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

matchType()#
返回类型:

MatchType

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

regularExpression()#
返回类型:

操作系统版本.QRegularExpression

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

swap(other)#
参数:

其他QRegularExpressionMatch

交换匹配结果 other 与此匹配结果。此操作非常快速且决不会失败。