- class QRegularExpressionValidator#
QRegularExpressionValidator
类用于检查字符串是否符合正则表达式。 更多…概述#
属性#
regularExpression
- 用于验证的正则表达式
方法#
def
__init__
槽函数#
信号#
注意
本文档可能包含从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#
这个属性持有用于验证的正则表达式。
默认情况下,这个属性包含一个格式为空的模式的正则表达式(因此它将与任何字符串匹配)。
使用接受任何字符串(包括空字符串)的有效性的
parent
对象构建验证器。- __init__(re[, parent=None])
- 参数:
re –
QRegularExpression
parent –
QWidget
使用接受匹配正则表达式
re
的所有字符串的parent
对象构建验证器。- regularExpression()#
- 返回类型:
属性
regularExpressionᅟ
的获取器。- regularExpressionChanged(re)#
- 参数:
re –
QRegularExpression
属性
regularExpressionᅟ
的变更通知信号。- setRegularExpression(re)#
- 参数:
re –
QRegularExpression
属性
regularExpressionᅟ
的设置器。