微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式处理

QString SysUtils :: formatHexString ( const & hex )
{
    QString hexStr(hex);
 
QRegExprx"([0-9A-Fa-f]{1,2})"QStringListlist;
intpos=0while((.indexIn,pos))!=-1)        list<<.cap+=.matchedLength();
    }
return.join""void MainWindow::HandleText()
{
    disconnect(ui->SendtextEditSIGNAL(textChanged()),0)">thisSLOT(HandleText()));

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();

}

原文地址:https://www.jb51.cc/regex/363176.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐