qt之正则表达式】的更多相关文章

原地址:http://blog.csdn.net/phay/article/details/7304455 QRegExp是Qt的正则表达式类.Qt中有两个不同类的正则表达式.第一类为元字符.它表示一个或多个常量表达式.令一类为 转义字符,它代表一个特殊字符. 一.元字符.  匹配任意单个字符.例如, 1.3 可能是1. 后面跟任意字符,再跟3^ 匹配字符串首. 例如, ^12可能是123,但不能是312$  配字符串尾. 例如, 12$可以是312, 当不能是 123[] 匹配括号内输入的任意…
     正则表达式是验证输入.从输入中提取数据以及对输入进行搜索和替换的强大工具,所谓正则表达式,regexp是一种利用模式匹配语言来描述字符串组成限制条件的方式;        Qt 提供了一个QRegExp类,它实现了Perl风格的扩展正则表达式语言的大部分功能:     正则表达式是一个字符的序列; 1):特殊字符 . (匹配任何字符) \n (匹配换行符) \f (匹配换页符) \xhhhh(匹配一个unicode字符,其对应的码值是范围0x0000到0xFFFF之间的一个十六进制数h…
正则表达式是个强大的东西 暂时先记录一个用法: QString str = "Peak memory: KEY s"; QString data = "Peak memory: 24.1 s"; 需要构建一个可以匹配 data 的正则表达式,模板为 str ,其中KEY代表需要提取的数据. PS: 需要注意的是 生成表达式中各种空格时候 \\ 的用法,什么时候用一个,什么时候用2个或者4个,搞错了的话就不会进入if条件语句了. #include <QAppli…
使用方法: QRegExp acNumRE("[0-9]{19}"); lineEdit->setValidator(new QRegExpValidator(acNumRE, this)); //C++ 正则表达式书写规则如下: [0-9]//可以输入0到9这几个数字 [A-Za-z]//输入任意英文的常规写法 [^]//有^标记时,方框内不能输入,例如[^abc]就不能输入"a","b","c". {}/*跟在[]后…
QRegExp rx; rx.setPattern("(\\.){0,1}0+$"); double double01 = 15648.120000; double double02 = 15648.000000 QString ceshi01 = QString(,).replace(rx,""); QString ceshi02 = QString(,).replace(rx,""); 碰到需求了,做个笔记…
引言 正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征.比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ”,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征. 正则表达式可以用来: (1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址. (2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便. (3)用来替换,比普通的替…
设置正则表达式. 类似下面的 QRegExp 这里的用法就是用来检测QString等字符串错误的,例如文件名里面最好就不出现<>|/\:等,所以可以如下定义QRegExp rx("[a-zA-Z0-9\-\\\_]{25}"); 25就是所输入的字符串个数!a-z当然就是a-z,你也可以abcdefghijklm....等等.\- 就是- 好了,现在可以把这个rx绑入QRegExpValidator. QRegExpValidator *pRevalidotor = new…
在项目中经常会遇到对字符串进行操作的情况,我们可以直接使用QString的一些函数,但QT提供了一个更加强大的类——QRegExp,使用正则表达式来操作字符串. 先说说我最近遇到的几个问题: 1.对输入框LineEdit中的输入内容加以限制,比如只能输入数字,并且最多5位数(因为int类型不限制位数会导致溢出问题): 2.检查输入是否正确,比如判断是否是1-9999之间的数: 3.获取一个字符串中的一段内容,比如获取2015-11-20中的2015. 为了解决这些问题,下面先看看正则表达式的基本…
判断合法IP的QT正则表达式: bool IsIPaddress(QString ip) { QRegExp rx2("(//d+)(//.)(//d+)(//.)(//d+)(//.)(//d +)"); int pos = rx2.indexIn(ip); if(pos>-1)    { for(int i=0;i<4;i++)        {            if( rx2.cap(i*2+1).toInt()>=255 )            {  …
QT正则表达式有一个问题,当初始状态是不符合正则表达式时,能够输入任意字符,若在输入过程中符合正则表达式,马上进入字符检测状态,即只能接受符合正则表达式的字符.…