QRegExp

这段代码会越界,百思不得七姐(过了N久时间 之后^^)原来是把i写成了1  --!

//#if 0
        QRegExp re1("AT+CGATT?");
        QRegExp re2("AT+CGATT=([0-9])");
        if (re1.exactMatch(list[1])) {
            qDebug()<<"list[i]"<<list[i];
        }
        else if (re2.exactMatch(list[i])) {
            // set
            int state;
            bool ok;
            state = re2.cap(1).toInt(&ok);
            if (ok && state >= 0 && state <= 1) {
                ue->cgatt.state = state;
                response.append("OK");
            }
            else
                response.append("ERROR");
        }
//#endif

这个for + switch 的用法回味好久之后还是美

           QRegExp ref1("AT+COPS?");
            QRegExp ref2("AT+COPS=([0-9])(.*)"); //[<mode>[,<format> [,<oper>[,<AcT>]]]]
            if (ref1.exactMatch(list[i]))
                response.append("+COPS:")
                        .append(QString::number(ue->cops.mode)).append(",")
                        .append(QString::number(ue->cops.format)).append(",")
                        .append(ue->cops.oper_numeric).append(",")
                        .append(QString::number(ue->cops.act)).append("\r\nOK");
            else if (ref2.exactMatch(list[i]))
            {
                ue->cops.mode = ref2.cap(1).toInt();
                if (!ref2.cap(2).isEmpty()) {
                    QStringList pa;
                    pa = ref2.cap(2).split(",");
                    for (i = 0; i < pa.size(); i++) {
                        switch (i) {
                        case 0: ue->cops.format = pa.at(i).toInt(); break;
                        case 1: strcpy(ue->cops.oper_long, pa.at(i).toAscii().constData()); break;
                        case 2: ue->cops.act = pa.at(i).toInt(); break;
                        default:
                            break;
                        }
                    }
                }

QRegExp

时间: 2024-10-11 08:49:06

QRegExp的相关文章

经典正则表达式QRegExp的解析

QRegExp正则表达式 2010-03-20 17:00 "^\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?\d+$" //整数 "^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0) &

QRegExp 正则表达式详解

引言 正则表达式(regular expression)就是用一个"字符串"来描述一个特征,然后去验证另一个"字符串"是否符合这个特征.比如 表达式"ab+" 描述的特征是"一个 'a' 和 任意个 'b' ",那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征. 正则表达式可以用来: (1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址. (2)用来查找字符串,从一个长的文本中查找符合指定特

Qt的语法高亮类(注释方式)

1 //语法高亮---QSyntaxHighlighter 2 //highlighter.h 3 class Highlighter : public QSyntaxHighlighter //定义一个类继承自QSyntaxHightliaghter 4 { 5 Q_OBJECT //Qt宏定义,使用Qt元编程 6 7 public: 8 Highlighter(QTextDocument *parent = 0); //构造函数,传递一个QTextDocument对象给其父类 9 10 pr

将vim作为QT开发的IDE

转载请注明链接与作者huihui1988 用了一段时间的vim,喜欢上了这种简洁高效的编辑器.恰逢正在学习QT中,于是将vim变成了开发QT的工具.以下是具体配置. 一.语法高亮支持: 1.打开VIMDIR/vim72/syntax/cpp.vim,加入 syn keyword cppStatement SLOT,SIGNAL syn keyword cppAccess slots,signals 2.增加QT的类型名: syn keyword cType ActiveQt Q3Accel Q3

在Qt中如何使用QtDesigner创建的UI文件(一) (转)

使用Qt有一些时间了,一直在IDE环境(qtcreator和VS2003+集成器)中使用,自然少了很多麻烦的步骤.但是在享受这种便利的同时,我们也失去了理解更多知识背后的点滴.在IDE中,如果我们要开发一个对话框,通常是使用 "新建->Qt->Qt设计师界面类" 这样IDE会自动的帮我们生成三个文件(filename.ui, filename.h,filename.cpp).qmake也非常智能,可以自动检测到这个用户界面文件(filename.ui)并且生产适当的make

C++开源库,欢迎补充

C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年.因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用.当Java横行天下之后,MS又突然发力,搞出C#语言,有大片的曾经的C++程序员,以为C++要就此沉沦,未料,这三年来,C++的生命力突然被 严重地增强了.主力原因就是开源的软件.基础软件(比如并发原生支持,比如Android必定要推出原生的SDK).各种跨平台应用的出现. 开源C++库必须具有以下特点:必须是成熟的产品.跨平台的产品.相对通用的库

Understand the Qt containers(有对应表)

Container classes are one of the cornerstones of object-oriented programming, invaluable tools that free us from having to permanently think about memory management. Qt comes with its own set of container classes, closely modeled after those in the S

在Qt中如何使用QtDesigner创建的UI文件

使用Qt有一些时间了,一直在IDE环境(qtcreator和VS2003+集成器)中使用,自然少了很多麻烦的步骤.但是在享受这种便利的同 时,我们也失去了理解更多知识背后的点滴.在IDE中,如果我们要开发一个对话框,通常是使用 “新建—>Qt—>Qt设计师界面类” 这样IDE会自动的帮我们生成三个文件(filename.ui, filename.h,filename.cpp).qmake也非常智能,可以自动检测到这个用户界面文件(filename.ui)并且生产适当的 makefile规则.这

pyqt 正则表达式例子学习

def rex01(self): username=QtCore.QRegExp('[a-zA-Z0-9_]{2,10}') self.names.setValidator(QtGui.QRegExpValidator(username,self)) mainname=QtCore.QRegExp("^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$") self.mains.setValidator(QtGui.QRegExpValidator(mainnam