class QRegularExpressionValidator#

QRegularExpressionValidator 类用于检查字符串是否符合正则表达式。 更多

Inheritance diagram of PySide6.QtGui.QRegularExpressionValidator

概述#

属性#

方法#

槽函数#

信号#

注意

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

详细说明#

警告

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

QRegularExpressionValidator 使用正则表达式(regexp)来判断输入字符串是否为 Acceptable(可接受), Intermediate(中间状态)或 Invalid(无效)状态。该正则表达式可以在构造 QRegularExpressionValidator 对象时提供,或稍后提供。

如果正则表达式与字符串部分匹配,则结果被视为 Intermediate(中间状态)。例如,对于正则表达式 [A-Z][0-9],“”和“A”被认为是中间状态( whereas “_” 会是 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#

这个属性持有用于验证的正则表达式。

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

访问函数
__init__([parent=None])#
参数:

parentQWidget

使用接受任何字符串(包括空字符串)的有效性的parent对象构建验证器。

__init__(re[, parent=None])
参数:

使用接受匹配正则表达式 re 的所有字符串的 parent 对象构建验证器。

regularExpression()#
返回类型:

QRegularExpression

属性 regularExpressionᅟ 的获取器。

regularExpressionChanged(re)#
参数:

reQRegularExpression

属性 regularExpressionᅟ 的变更通知信号。

setRegularExpression(re)#
参数:

reQRegularExpression

属性 regularExpressionᅟ 的设置器。