PySide6.QtGui.QRegularExpressionValidator

class QRegularExpressionValidator

QRegularExpressionValidator 类用于根据正则表达式检查字符串。更多

PySide6.QtGui.QRegularExpressionValidator 的继承图

概要

属性

方法

插槽

信号

注意

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

详细描述

警告

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

QRegularExpressionValidator 使用正则表达式(regexp)来确定输入字符串是 AcceptableIntermediate 还是 Invalid。正则表达式可以在构造 QRegularExpressionValidator 时提供,也可以在稍后提供。

如果正则表达式部分匹配字符串,结果被认为是Intermediate。例如,“”和“A”对于正则表达式[A-Z][0-9]来说是Intermediate(而“_”则是Invalid)。

QRegularExpressionValidator 自动将正则表达式包裹在 \\A\\z 锚点中;换句话说,它总是尝试进行完全匹配。

使用示例:

# regexp: optional '-' followed by between 1 and 3 digits
def rx("-?\\d{1,3}"):
validator = QRegularExpressionValidator(rx, self)
edit = QLineEdit(self)
edit.setValidator(validator)

下面我们展示一些验证器的示例。在实际应用中,它们通常会像上面的示例那样与一个小部件相关联。

# integers 1 to 9999
def re("[1-9]\\d{0,3}"):
# the validator treats the regexp as "^[1-9]\\d{0,3}$"
v = QRegularExpressionValidator(re, 0)
s = QString()
pos = 0
s = "0" v.validate(s, pos); # returns Invalid
s = "12345" v.validate(s, pos); # returns Invalid
s = "1" v.validate(s, pos); # returns Acceptable
re.setPattern("\\S+") # one or more non-whitespace characters
v.setRegularExpression(re)
s = "myfile.txt" v.validate(s, pos); # Returns Acceptable
s = "my file.txt" v.validate(s, pos); # Returns Invalid
# A, B or C followed by exactly five digits followed by W, X, Y or Z
re.setPattern("[A-C]\\d{5}[W-Z]")
v.setRegularExpression(re)
s = "a12345Z" v.validate(s, pos); # Returns Invalid
s = "A12345Z" v.validate(s, pos); # Returns Acceptable
s = "B12" v.validate(s, pos); # Returns Intermediate
# match most 'readme' files
re.setPattern("read\\S?me(\\.(txt|asc|1st))?")
re.setPatternOptions(QRegularExpression.CaseInsensitiveOption)
v.setRegularExpression(re)
s = "readme" v.validate(s, pos); # Returns Acceptable
s = "README.1ST" v.validate(s, pos); # Returns Acceptable
s = "read me.txt" v.validate(s, pos); # Returns Invalid
s = "readm" v.validate(s, pos); # Returns Intermediate

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property regularExpressionᅟ: QRegularExpression

此属性保存用于验证的正则表达式。

默认情况下,此属性包含一个具有空模式的正则表达式(因此匹配任何字符串)。

Access functions:
__init__([parent=None])
Parameters:

父对象QObject

构造一个带有parent对象的验证器,该对象接受任何字符串(包括空字符串)作为有效输入。

__init__(re[, parent=None])
Parameters:

构造一个带有parent对象的验证器,该对象接受所有与正则表达式re匹配的字符串。

regularExpression()
Return type:

QRegularExpression

另请参阅

setRegularExpression()

属性 regularExpressionᅟ 的获取器。

regularExpressionChanged(re)
Parameters:

reQRegularExpression

属性 regularExpressionᅟ 的通知信号。

setRegularExpression(re)
Parameters:

reQRegularExpression

另请参阅

regularExpression()

属性 regularExpressionᅟ 的设置器。