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