QRegExpValidator¶
The
QRegExpValidator
class is used to check a string against a regular expression. More…

Detailed Description¶
QRegExpValidator
uses a regular expression (regexp) to determine whether an input string isAcceptable
,Intermediate
, orInvalid
. The regexp can either be supplied when theQRegExpValidator
is constructed, or at a later time.When
QRegExpValidator
determines whether a string isAcceptable
or not, the regexp is treated as if it begins with the start of string assertion (^ ) and ends with the end of string assertion ($ ); the match is against the entire input string, or from the given position if a start position greater than zero is given.If a string is a prefix of an
Acceptable
string, it is consideredIntermediate
. For example, “” and “A” areIntermediate
for the regexp [A-Z][0-9] (whereas “_” would beInvalid
).For a brief introduction to Qt’s regexp engine, see
QRegExp
.Example of use:
# regexp: optional '-' followed by between 1 and 3 digits rx = QRegExp("-?\\d{1,3}") validator = QRegExpValidator(rx, self) edit = QLineEdit(self) edit.setValidator(validator)Below we present some examples of validators. In practice they would normally be associated with a widget as in the example above.
# integers 1 to 9999 rx = QRegExp("[1-9]\\d{0,3}") # the validator treats the regexp as "^[1-9]\\d{0,3}$" v = QRegExpValidator(rx, 0) 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 rx.setPattern("\\S+") # one or more non-whitespace characters v.setRegExp(rx) 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 rx.setPattern("[A-C]\\d{5}[W-Z]") v.setRegExp(rx) 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 rx.setPattern("read\\S?me(\.(txt|asc|1st))?") rx.setCaseSensitive(false) v.setRegExp(rx) 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 IntermediateSee also
QRegExp
QIntValidator
QDoubleValidator
Settings Editor Example
-
class
QRegExpValidator
([parent=None])¶ QRegExpValidator(rx[, parent=None])
- param parent
QObject
- param rx
QRegExp
Constructs a validator with a
parent
object that accepts any string (including an empty one) as valid.Constructs a validator with a
parent
object that accepts all strings that match the regular expressionrx
.The match is made against the entire string; e.g. if the regexp is [A-Fa-f0-9]+ it will be treated as ^[A-Fa-f0-9]+$ .
-
PySide2.QtGui.QRegExpValidator.
regExp
()¶ - Return type
QRegExp
See also
-
PySide2.QtGui.QRegExpValidator.
regExpChanged
(regExp)¶ - Parameters
regExp –
QRegExp