- class QRegularExpressionMatch#
类
QRegularExpressionMatch
提供了对字符串使用QRegularExpression
匹配的结果。 更多…概述
方法
def
__init__()
def
captured()
def
capturedEnd()
def
capturedLength()
def
capturedStart()
def
capturedTexts()
def
capturedView()
def
hasCaptured()
定义
hasMatch()
定义
isValid()
定义
matchType()
定义
swap()
注释
本文档可能包含自动从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)#
- 参数:
match –
QRegularExpressionMatch
通过复制给定的
match
结果来构建匹配结果。另请参阅
operator=()
- __init__()
构建一个有效的、空的
QRegularExpressionMatch
对象。正则表达式设置为默认构造的;匹配类型为NoMatch
,匹配选项为NoMatchOption
。对象将通过
hasMatch()
和hasPartialMatch()
成员函数报告无匹配。- captured(name)#
- 参数:
name – 字符串
- 返回类型:
字符串
返回指定捕获组名称
name
捕获的子字符串。如果命名的捕获组
name
未捕获字符串,或者没有名为name
的捕获组,则返回一个空的QString
。另请参阅
capturedView()
capturedStart()
capturedEnd()
capturedLength()
isNull()
- captured(name)
- 参数:
name – 字符串
- 返回类型:
字符串
返回指定捕获组名称
name
捕获的子字符串。如果命名的捕获组
name
未捕获字符串,或者没有名为name
的捕获组,则返回一个空的QString
。另请参阅
capturedView()
capturedStart()
capturedEnd()
capturedLength()
isNull()
- 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
的捕获组捕获的子字符串的长度。- capturedLength(name)
- 参数:
name – 字符串
- 返回类型:
整型
返回名为
name
的捕获组捕获的子字符串的长度。- capturedLength([nth=0])
- 参数:
nth – 整数
- 返回类型:
整型
返回由第
nth
个捕获组捕获的子字符串的长度。- 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
。另请参阅
captured()
capturedStart()
capturedEnd()
capturedLength()
isNull()
- 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。
另请参阅
- hasPartialMatch()#
- 返回类型:
bool
如果正则表达式部分匹配了主题字符串,则返回true,否则返回false。
注释
只有显式使用了部分匹配类型之一的匹配才能产生部分匹配。尽管如此,如果此类匹配完全成功,此函数将返回false,而
hasMatch()
将返回true。另请参阅
- isValid()#
- 返回类型:
bool
如果匹配对象是从调用有效的
match()
函数获得的QRegularExpression
对象;如果QRegularExpression
无效,则返回false。- 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()
的匹配选项。返回用于获取此
QRegularExpressionMatch
对象的匹配类型,即传递给match()
或globalMatch()
的匹配类型。- regularExpression()#
返回的
QRegularExpression
对象的match()
函数返回此对象。- swap(other)#
- 参数:
交换匹配结果
other
与此匹配结果。此操作非常快速且决不会失败。