[QtGui module]

该QRegExpValidator类是用来检查与正则表达式的字符串。More…

继承QValidator

Methods

  • __init__ (self, QObject parent = None)
  • __init__ (self, QRegExp rx, QObject parent = None)
  • QRegExp regExp (self)
  • setRegExp (self, QRegExp rx)
  • (QValidator.State, QString input, int pos) validate (self, QString input, int pos)
  • (QValidator.State, int pos) validate (self, QString input, int pos)

Detailed Description

该QRegExpValidator类是用来检查与正则表达式的字符串。

QRegExpValidator使用正则表达式(正则表达式)来确定一个输入字符串是否是AcceptableIntermediateInvalid。当QRegExpValidator构造正则表达式可以被提供,或者在稍后的时间。

当QRegExpValidator判断一个字符串是否是Acceptable还是不行,正则表达式被视为其与字符串断言的启动开始(^),并用绳子断言年底结束($) ;匹配是对整个输入字符串,或者从给定的位置,如果开始位置大于零给出。

如果一个字符串的前缀Acceptable串,它被认为是Intermediate。例如, “ ”和“A”是Intermediate为正则表达式[A-Z][0-9](而“_“将是Invalid) 。

对于简要介绍了Qt的正则表达式引擎,请参阅QRegExp

使用示例:

  1. // regexp: optional '-' followed by between 1 and 3 digits
  2. [QRegExp](docs_qregexp.html) rx("-?\\d{1,3}");
  3. [QValidator](docs_qvalidator.html) *validator = new QRegExpValidator(rx, this);
  4. [QLineEdit](docs_qlineedit.html) *edit = new [QLineEdit](docs_qlineedit.html)(this);
  5. edit->setValidator(validator);

下面,我们提出校验器的一些例子。在实践中,它们通常会被一个小部件如在上面的例子有关。

  1. // integers 1 to 9999
  2. [QRegExp](docs_qregexp.html) rx("[1-9]\\d{0,3}");
  3. // the validator treats the regexp as "^[1-9]\\d{0,3}$"
  4. QRegExpValidator v(rx, 0);
  5. [QString](docs_qstring.html) s;
  6. int pos = 0;
  7. s = "0"; v.validate(s, pos); // returns Invalid
  8. s = "12345"; v.validate(s, pos); // returns Invalid
  9. s = "1"; v.validate(s, pos); // returns Acceptable
  10. rx.setPattern("\\S+"); // one or more non-whitespace characters
  11. v.setRegExp(rx);
  12. s = "myfile.txt"; v.validate(s, pos); // Returns Acceptable
  13. s = "my file.txt"; v.validate(s, pos); // Returns Invalid
  14. // A, B or C followed by exactly five digits followed by W, X, Y or Z
  15. rx.setPattern("[A-C]\\d{5}[W-Z]");
  16. v.setRegExp(rx);
  17. s = "a12345Z"; v.validate(s, pos); // Returns Invalid
  18. s = "A12345Z"; v.validate(s, pos); // Returns Acceptable
  19. s = "B12"; v.validate(s, pos); // Returns Intermediate
  20. // match most 'readme' files
  21. rx.setPattern("read\\S?me(\.(txt|asc|1st))?");
  22. rx.setCaseSensitive(false);
  23. v.setRegExp(rx);
  24. s = "readme"; v.validate(s, pos); // Returns Acceptable
  25. s = "README.1ST"; v.validate(s, pos); // Returns Acceptable
  26. s = "read me.txt"; v.validate(s, pos); // Returns Invalid
  27. s = "readm"; v.validate(s, pos); // Returns Intermediate

Method Documentation

  1. QRegExpValidator.__init__ (self, QObject parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造一个验证用parent对象接受任何字符串(包括空单)为有效。

  1. QRegExpValidator.__init__ (self, QRegExp rx, QObject parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造一个验证用parent对象接受匹配正则表达式的字符串rx

本场比赛是针对整个字符串,例如如果设置了RegExp是[A-Fa-f0-9]+这将被视为[1]+$

  1. QRegExp QRegExpValidator.regExp (self)

[

  1. QRegExpValidator.setRegExp (self, QRegExp rx)
  1. (QValidator.State, QString input, int pos) QRegExpValidator.validate (self, QString input, int pos)

](docs_qregexp.html)

从重新实现QValidator.validate( ) 。

Returns Acceptable如果input匹配的正则表达式为这个校验器,Intermediate如果它匹配的部分(即可能是一个有效的匹配,如果其他有效字符添加) ,及Invalid如果input不匹配。

pos参数被设置为的长度input参数。

例如,如果正则表达式是\w\d\d(单词字符,数字,数字),那么“ A57 ”是Acceptable, “ E5 ”是Intermediate和“ 9 ”的Invalid

See also QRegExp.exactMatch( ) 。

  1. (QValidator.State, int pos) QRegExpValidator.validate (self, QString input, int pos)

  1. A-Fa-f0-9 ↩︎