正则表达式处理

前端之家收集整理的这篇文章主要介绍了正则表达式处理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
QString SysUtils :: formatHexString ( const & hex )
  1. {
  1. QString hexStr(hex);
  1.  
  1. QRegExprx"([0-9A-Fa-f]{1,2})"QStringListlist;
  1. intpos=0while((.indexIn,pos))!=-1) list<<.cap+=.matchedLength();
  1. }
  1. return.join""void MainWindow::HandleText()
    {
  1. disconnect(ui->SendtextEditSIGNAL(textChanged()),0)">thisSLOT(HandleText()));
  1. QTextCursortextCursor=ui->SendtextEdit->textCursor();

    intrecordPos=textCursor.position();//记录光标位置

    QStringtxt=ui->SendtextEdit->toPlainText();//读取待处理字符串

    QStringtmp=txt;

    tmp=tmp.replace("","");//去掉待处理字符串空格

    QStringhexStr=SysUtils::formatHexString(tmp);

    ui->SendtextEdit->setText(hexStr);

    if(recordPos>0)

    {

    QStringch=hexStr.mid(recordPos-1,1);

    qDebug()<<ch;

    if(ch=="")

    recordPos++;

    }

    textCursor.setPosition(recordPos);

    ui->SendtextEdit->setTextCursor(textCursor);

    connect()));

    }

    转自:http://blog.csdn.net/liuguangzhou123/article/details/8294332


    正则表达式匹配

        QRegExp rx("[\u4e00-\u9fa5]"); 匹配utf-8格式的汉字,这个可以匹配一个,多个可以加入 +或者*
        QString str("我....这是神马");
    QStringList list;
    int pos = 0;
    while ((pos rx.indexIn(str, pos)) != -1) //从pos位置开始匹配
    	{
            list << rx.cap(0);  //cap(0)是整个匹配的,cap(1)是第一个括号中匹配的 cap(2)是第二个括号中匹配的
            pos += rx.matchedLength(); 范围开始匹配的位置  // rx.exactMatch(str) 返回是否正确
         }
        qDebug() list;



    int main(int argc,char *argv[])
    {

    QString str = "[(40,120),360x360]";
    QRegExp rx("(\\d+)");
    QStringList list ;
    int pos = 0;
    while ((pos = rx.indexIn(str,pos)) != -1) {
    list << rx.cap(0);
    pos += rx.matchedLength();
    }
    //这只是为了写成4个数的格式

    int rectx = list.at(0).toInt();
    int recty = list.at(1).toInt();
    int rectw = list.at(2).toInt();
    int recth = list.at(3).toInt();

    }

猜你在找的正则表达式相关文章