StupidBeauty
Read times:1140Posted at:Sun May 4 21:21:22 2014
- no title specified

Qt4.8文档翻译:QRegExpValidator类参考,QRegExpValidator Class Reference

详细说明

QRegExpValidator类被用于检查一个字符串是否匹配某个正则表达式。

QRegExpValidator使用 一个正则表达式 (regexp) 来确定某个输入字符串是处于以下三个状态中的哪一个: 可接受的( Acceptable )、未决的( Intermediate )或无效的( Invalid )。 该正则表达式可在构造QRegExpValidator 的时候就提供,或者日后再提供。

QRegExpValidator判断 一个字符串是否可接受 Acceptable 的时候, 会将所提供的正则表达式当成是以字符 串起始符号 ( ^ )开头 ,以字符串终止符号 ( $ )结束 ;匹配过程 是针对着整个输入字符串进行的,或者,如果指定 了一个大于0的起始位置的话则会针 指定的位置开始进行匹配判断。

如果 一个字符串是某个可接受的( Acceptable )字符串的前缀, 则会认为该字符串是未决的( Intermediate )。例如 ,对于正则表达 [A-Z][0-9] "" "A" 都是 未决 " _ " 无效 )。

若想阅读关于Qt的正则表达式引擎的简要介绍的话,则参考 QRegExp

用法示例

// 正则表达 式:可选 '-' ,后跟 1 3 位数字

QRegExp rx("-? \\ d{1,3}");

QValidator *validator = new QRegExpValidator(rx, this);

QLineEdit *edit = new QLineEdit(this);

edit->setValidator(validator);

以下是一些检验器示例。在实际代码中,一般应当将它们与一个部件关联起来使用,就像上面的示例那样。

// 整数 1 9999

QRegExp rx("[1-9] \\ d{0,3}");

// 检验 器会将该正则式当成"^[1-9]\\d{0,3}$"处理

QRegExpValidator v(rx, 0);

QString s;

int pos = 0;

s = "0"; v.validate(s, pos); // 返回Invalid

s = "12345"; v.validate(s, pos); // 返回Invalid

s = "1"; v.validate(s, pos); // 返回Acceptable

rx.setPattern(" \\ S+"); // 一个或多个非空白字符

v.setRegExp(rx);

s = "myfile.txt"; v.validate(s, pos); // 返回Acceptable

s = "my file.txt"; v.validate(s, pos); // 返回Invalid

// A, B C 后跟 5位数字,后跟 W, X, Y Z

rx.setPattern("[A-C] \\ d{5}[W-Z]");

v.setRegExp(rx);

s = "a12345Z"; v.validate(s, pos); // 返回Invalid

s = "A12345Z"; v.validate(s, pos); // 返回Acceptable

s = "B12"; v.validate(s, pos); // 返回Intermediate

// 匹配 大部分的 'readme'文件

rx.setPattern("read \\ S?me(\.(txt|asc|1st))?");

rx.setCaseSensitive(false);

v.setRegExp(rx);

s = "readme"; v.validate(s, pos); // 返回Acceptable

s = "README.1ST"; v.validate(s, pos); // 返回Acceptable

s = "read me.txt"; v.validate(s, pos); // 返回Invalid

s = "readm"; v.validate(s, pos); // 返回Intermediate

参考 QRegExp QIntValidator QDoubleValidator 设置信息编辑 器示例

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands