PySide6.QtCore.QRegularExpressionMatch¶
- class QRegularExpressionMatch¶
QRegularExpressionMatch
类提供了将QRegularExpression
与字符串匹配的结果。更多…概要¶
方法¶
def
__init__()
def
captured()
def
capturedEnd()
def
capturedLength()
def
capturedStart()
def
capturedTexts()
def
capturedView()
def
hasCaptured()
def
hasMatch()
def
isValid()
def
matchOptions()
def
matchType()
def
swap()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
可以通过调用
match()
函数获得一个QRegularExpressionMatch
对象,或者作为QRegularExpressionMatchIterator
的全局匹配的单一结果。匹配尝试的成功或失败可以通过调用
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()
来获取。请参阅
QRegularExpression
文档以获取有关Qt正则表达式类的更多信息。另请参阅
- __init__()¶
构造一个有效的、空的
QRegularExpressionMatch
对象。正则表达式设置为默认构造的;匹配类型设置为NoMatch
,匹配选项设置为NoMatchOption
。该对象将通过
hasMatch()
和hasPartialMatch()
成员函数报告没有匹配。- __init__(match)
- Parameters:
通过复制给定的
match
的结果来构建匹配结果。另请参阅
operator=()
- captured(name)¶
- Parameters:
name – str
- Return type:
字符串
返回由名为
name
的捕获组捕获的子字符串。如果命名的捕获组
name
没有捕获到字符串,或者如果没有名为name
的捕获组,则返回一个空的QString
。注意
在Qt 6.8之前的版本中,此函数接受
QString
或QStringView
,而不是QAnyStringView
。另请参阅
capturedView()
capturedStart()
capturedEnd()
capturedLength()
isNull()
- captured([nth=0])
- Parameters:
nth – 整数
- Return type:
字符串
返回由第
nth
个捕获组捕获的子字符串。如果第
nth
个捕获组没有捕获到字符串,或者没有这样的捕获组,则返回一个空的QString
。注意
隐式捕获组编号0捕获由整个模式匹配的子字符串。
- capturedEnd(name)¶
- Parameters:
name – str
- Return type:
整数
返回在由名为
name
的捕获组捕获的子字符串结束位置之后,主题字符串内的偏移量。如果名为name
的捕获组没有捕获字符串或不存在,则返回-1。注意
在Qt 6.8之前的版本中,此函数接受
QString
或QStringView
,而不是QAnyStringView
。- capturedEnd([nth=0])
- Parameters:
nth – 整数
- Return type:
整数
返回主题字符串中紧接在第
nth
捕获组捕获的子字符串结束位置之后的偏移量。如果第nth
捕获组未捕获字符串或不存在,则返回-1。- capturedLength(name)¶
- Parameters:
name – str
- Return type:
整数
返回由名为
name
的捕获组捕获的子字符串的长度。注意
如果名为
name
的捕获组没有捕获字符串或不存在,此函数返回0。注意
在Qt 6.8之前的版本中,此函数接受
QString
或QStringView
,而不是QAnyStringView
。- capturedLength([nth=0])
- Parameters:
nth – 整数
- Return type:
整数
返回由第
nth
捕获组捕获的子字符串的长度。- capturedStart(name)¶
- Parameters:
name – str
- Return type:
整数
返回与名为
name
的捕获组捕获的子字符串的起始位置相对应的主题字符串内的偏移量。如果名为name
的捕获组未捕获字符串或不存在,则返回-1。注意
在Qt 6.8之前的版本中,此函数接受
QString
或QStringView
,而不是QAnyStringView
。- capturedStart([nth=0])
- Parameters:
nth – 整数
- Return type:
整数
返回与第
nth
捕获组捕获的子字符串的起始位置相对应的主题字符串内的偏移量。如果第nth
捕获组未捕获字符串或不存在,则返回-1。- capturedTexts()¶
- Return type:
字符串列表
返回由捕获组捕获的所有字符串的列表,顺序与组本身在模式字符串中出现的顺序相同。该列表包括隐式捕获组编号0,捕获整个模式匹配的子字符串。
- capturedView(name)¶
- Parameters:
name – str
- Return type:
字符串
返回由名为
name
的捕获组捕获的字符串的视图。如果命名的捕获组
name
没有捕获字符串,或者如果没有名为name
的捕获组,则返回一个空的QStringView
。注意
在Qt 6.8之前的版本中,此函数接受
QString
或QStringView
,而不是QAnyStringView
。另请参阅
captured()
capturedStart()
capturedEnd()
capturedLength()
isNull()
- capturedView([nth=0])
- Parameters:
nth – 整数
- Return type:
字符串
返回由第
nth
捕获组捕获的子字符串的视图。如果第
nth
个捕获组没有捕获到字符串,或者没有这样的捕获组,则返回一个空的QStringView
。注意
隐式捕获组编号0捕获由整个模式匹配的子字符串。
- hasCaptured(name)¶
- Parameters:
name – str
- Return type:
布尔
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
如果名为
name
的捕获组在主题字符串中捕获了某些内容,则返回true,否则返回false(或者如果没有名为name
的捕获组)。注意
在正则表达式中,某些捕获组可能没有捕获任何内容,即使正则表达式匹配成功。例如,如果在模式中使用了条件运算符,可能会发生这种情况:
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
。- hasCaptured(nth)
- Parameters:
nth – 整数
- Return type:
布尔
警告
本节包含从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()¶
- Return type:
布尔
如果正则表达式与主题字符串匹配,则返回
true
,否则返回 false。另请参阅
- hasPartialMatch()¶
- Return type:
布尔
如果正则表达式部分匹配了目标字符串,则返回
true
,否则返回false。- isValid()¶
- Return type:
布尔
如果匹配对象是通过在有效的
QRegularExpression
对象上调用的match()
函数获得的,则返回true
;如果QRegularExpression
无效,则返回false
。- lastCapturedIndex()¶
- Return type:
整数
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回最后一个捕获了内容的捕获组的索引,包括隐式捕获组0。这可以用于提取所有被捕获的子字符串:
match = re.match(string) for i in range(0, match.lastCapturedIndex() + 1): captured = match.captured(i) # ...
请注意,一些索引小于lastCapturedIndex()的捕获组可能没有匹配,因此没有捕获任何内容。
如果正则表达式没有匹配,此函数返回-1。
- matchOptions()¶
- Return type:
MatchOption
的组合
返回用于获取此
QRegularExpressionMatch
对象的匹配选项,即传递给match()
或globalMatch()
的匹配选项。返回用于获取此
QRegularExpressionMatch
对象的匹配类型,即传递给match()
或globalMatch()
的匹配类型。- regularExpression()¶
- Return type:
返回其match()函数返回此对象的
QRegularExpression
对象。- swap(other)¶
- Parameters:
将此匹配结果与
other
匹配结果交换。此操作非常快速且永远不会失败。