Qt组件显示输入的正则表达式使用总结

       Qt的正则表达式校验器类:QRegExpValidator。做界面编程的时候,对文本框的处理往往是个很麻烦的事情,一是焦点进入文本框时,从人性化考虑,应选择文本框中文本,方便输入;二是,限制文本框的输入,只允许输入有效的文本,如果不这样做的话,那么就需要在程序中滤去非法输入,正则表达式的功效就显示出来了!

       下面是一些常用的利用正则表达式校验器限定数值范围的用法:

        简单正则表达式:

^(-?[0]|-?[1-9][0-9]{0,5})(?:\.\d{1,4})?$|(^\t?$)
(^-?180$)|(^-?1[0-7]\d$)|(^-?[1-9]\d$)|(^-?[1-9]$)|^0$
^-?(180|1?[0-7]?\d(\.\d+)?)$
^-?(180|1?[0-7]?\d(\.\d{1,4})?)$

^-?(90|[1-8]?\d(\.\d{1,4})?)$

 (1).式子中开头的^和结尾的$限定字符串的开始和结尾;
 (2)."-?" 表示一个或0个负号,这里面的问号表示其前面的字符重复0次或1次;
 (3).管道符“|”表示平行分组,比如后三个,表示180或其它形式;
 (4).[1-9] 表示限定数字范围为1到9,其余类似,如果是有限几个值,还可以用枚举的方式,比如限定-255到255时,第一个数字 (5).2的限定,应该表达为[1,2],这表示这个位置只允许是1或者2;
 (6)."\d"是一个转义字符,表示匹配一位数字;
 (7).“\.” 表示匹配小数点;
 (8)."\d+",这里面的+表示其前面的\d重复一次或多次;

 (9). "\d{1,4}",里面的{1,4}表示重复1到4次;

限制浮点数输入范围为[-999999.9999,999999.9999] :

QRegExp rx("^(-?[0]|-?[1-9][0-9]{0,5})(?:\\.\\d{1,4})?$|(^\\t?$)"

限制浮点数输入范围为[-180,180]:

QRegExp rx("(^-?180$)|(^-?1[0-7]\\d$)|(^-?[1-9]\\d$)|(^-?[1-9]$)|^0$");

限制浮点数输入范围为[-180,180]:

QRegExp rx("^-?(180|1?[0-7]?\\d(\\.\\d+)?)$");

限制浮点数输入范围为[-180,180]并限定为小数位后4位:

QRegExp rx("^-?(180|1?[0-7]?\\d(\\.\\d{1,4})?)$"); 

限制浮点数输入范围为[-90,90]并限定为小数位后4位:

QRegExp rx("^-?(90|[1-8]?\\d(\\.\\d{1,4})?)$"); 

限制[-255,255]整数

QregExp rx(^-?(255|[1,2]?[0-4]?\d|[1,2]?5[0-4]?)$);

限制[-255,255]小数

QregExp rx(^-?(255|([1,2]?[0-4]?\d|[1,2]?5[0-4]?)(\.\d)?)$)




你可能感兴趣的:(C++,Qt,C/C++/C#开发实战365)