转自--》 http://blog.sina.com.cn/s/articlelist_2801495241_0_2.html
在用写程序的时候,往往会用到正则表达式,不仅仅是Web开发,MFC、GTK+、Qt开发的图形界面也是如此,只要了解其原理,语法也都大相径庭!
0、lineEdit非大写输入时,显示 no mathch
QRegExp passwdReg("^[A-Z]+$"); if( !passwdReg.exactMatch( pwdEdit1->text() ) ) qDebug() << "no match";
1、非汉字(6-20位)
常例:密码框
QRegExp password_reg_exp("[^u4E00-u9FA5]{6,20}"); QRegExpValidator *password_validator = new QRegExpValidator(password_reg_exp);
QLineEdit *password_line_edit = new QlineEdit();
password_line_edit->setText(QString("密码正则ok"));
QString password = password_line_edit->text();
if(!password_validator->regExp().exactMatch(password)) { return false; }
2、字母、数字、下划线组成(4-30位)
常例:用户名 QRegExp user_reg_exp("[A-Za-z0-9_]{6,30}");
3、整形范围
常例:端口
QIntValidator *int_validator = new QIntValidator(0,65535);
QLineEdit *int_edit = new QLineEdit();
int_edit ->setValidator(int_validator );
遇到的就这些了,以后使用再补充!
转自--》http://hi.baidu.com/imtoby/item/9d8cf349ec781b2710ee1edd
"^/d+$" //非负整数(正整数+0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-/d+)|(0+))$" //非正整数(负整数+0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?/d+$" //整数 "^/d+(/./d+)?$" //非负浮点数(正浮点数+0) "^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数 "^((-/d+(/./d+)?)|(0+(/.0+)?))$" //非正浮点数(负浮点数+0) "^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数 "^(-?/d+)(/./d+)?$" //浮点数 "^[A-Za-z]+$" //由26个英文字母组成的字符串 "^[A-Z]+$" //由26个英文字母的大写组成的字符串 "^[a-z]+$" //由26个英文字母的小写组成的字符串 "^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串 "^/w+$" //由数字、26个英文字母或者下划线组成的字符串 "^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$" //email地址 "^[a-zA-z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$" //url "^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$"//年-月-日 "^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$"//月/日/年 "^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"//Email "(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?"//电话号码 "^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"//IP地址
^([0-9A-F]{2})(-[0-9A-F]{2}){5}$//MAC地址的正则表达式 ^[-+]?/d+(/./d+)?$//值类型正则表达式
QRegExp是Qt的正则表达式类. Qt中有两个不同类的正则表达式. 第一类为元字符.它表示一个或多个常量表达式. 令一类为转义字符,它代表一个特殊字符. 一.元字符 .匹配任意单个字符.例如,1.3可能是1.后面跟任意字符,再跟3 ^匹配字符串首.例如,^12可能是123,但不能是312 $配字符串尾.例如,12$可以是312,当不能是123 []匹配括号内输入的任意字符.[123]可以为1,2或3 *匹配任意数量的前导字符.例如,1*2可以为任意数量个1(甚至没有),后面跟一个2 +匹配至少一个前导字符.例如,1+2必须为一个或多个1,后跟一个2 ?匹配一个前导字符或为空.例如1?2可以为2或这12 二.统配模式 通过QRegExp::setPatternSyntax(QRegExp::Wildcard);可以将元字符设置为统配模式.在统配模式下,只有3个元字符可以使用.他们的功能没有变化. ?匹配任意单个字符,例如,1?2可以为1,后面跟任意单个字符,再跟2 *匹配任意一个字符序列.例如,1*2,可以为1,后面跟任意数量的字符,再跟一个2 []匹配一个定义的字符集合.例如,[a-zA-Z/.]可以匹配a到z之间任意一个字符和.[^a]匹配出小写a以外的字符. 三.转义序列 .匹配"." ^匹配"^" $匹配"$" [匹配"[" ]匹配"]" *匹配"*" +匹配"+" ?匹配"?" b匹配响铃字符,使计算机发出嘟的一声. t制表符号 n换行符号 r回车符鉿 s任意空格 xnn匹配16进制为nn的字符 nn匹配8进制的nn字符 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|