程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Qt正則表達式提取數據

Qt正則表達式提取數據

編輯:C++入門知識

這幾天在上嵌入式課程設計,需要用到Qt,這個是信號與槽的,寒假的時候也簡單學習了一些,但是沒有怎麼深入,又回過來看了看Qt,發現Qt的ui界面配置與Android的好像,當然Qt也可以拿來開發Android。

廢話不多說了,直接上代碼:

用正則表達式提取數據                                                                       

void testRegexCapture()
{
    QString pattern(“(.*)=(.*)”);
    QRegExp rx(pattern);

    QString str(“a=100″);
    int pos = str.indexOf(rx);              // 0, position of the first match.
                                            // Returns -1 if str is not found.
                                            // You can also use rx.indexIn(str);
    qDebug() << pos;
    if ( pos >= 0 )
    {
        qDebug() << rx.matchedLength();     // 5, length of the last matched string
                                            // or -1 if there was no match
        qDebug() << rx.capturedTexts();     // QStringList(“a=100″, ”a”, ”100″),
                                            //   0: text matching pattern
                                            //   1: text captured by the 1st ()
                                            //   2: text captured by the 2nd ()

        qDebug() << rx.cap(0);              // a=100, text matching pattern
        qDebug() << rx.cap(1);              // a, text captured by the nth ()
        qDebug() << rx.cap(2);              // 100,

        qDebug() << rx.pos(0);              // 0, position of the nth captured text
        qDebug() << rx.pos(1);              // 0
        qDebug() << rx.pos(2);              // 2
    }
}

用正則表達式修改文本                                                                      

QString s = ”a=100″;
s.replace(QRegExp(“(.*)=”), ”b=”);
qDebug() << s;                          // b=100
QString s = ”a=100″;
s.replace(QRegExp(“(.*)=(.*)”), ”\\1\\2=\\2″);  // \1 is rx.cap(1), \2 is rx.cap(2)
qDebug() << s;                                  // a100=100

用正則表達式驗證文本有效性                                                               

void testRegexMatch()
{
    QString pattern(“.*=.*”);
    QRegExp rx(pattern);

    bool match = rx.exactMatch(“a=3″);
    qDebug() << match;                      // True

    match = rx.exactMatch(“a/2″);
    qDebug() << match;                      // False
}

我是天王蓋地虎的分割線                                                                   

當初了解到Qt是在學習MFC的時候,當時寫MFC程序才叫傷心啊。

Qt一次編寫,多次編譯。在windows還是linux平台上,只需要換一下編譯器就OK,代碼都不需要怎麼改的。

通過寫linux上的程序,我涉及到的這個程序是arm板子上,通過串口通信讀取zigbee發來的信息。主要是板子上驅動寫的好,Qt寫個串口通信就可以直接拿來用。

 

 

 

轉載請注明出處:http://www.cnblogs.com/yydcdut

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved