{
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 举报,一经查实,本站将立刻删除。