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();
} (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|