Qt中QRegExp类为使用正则表达式提供一系列方法,对于一些带有单位的字符串,使用正则表达式可以快速的分割数字和单位。
1.整型数据的分割
//整型数据
QStringList strList;
QString strVal = "fre: 1000Hz";
QRegExp rxlen("(\\d+)(?:\\s*)(Hz|MHz)");
int = pos = rxlen.indexIn(strVal);
if (pos > -1) {
strList = rxlen.capturedTexts();
if(strList.size() >= 3)
{
str = strList.at(0);//"1000Hz"
strNum = strList.at(1);//"1000"
strUnit = strList.at(2);//"Hz"
}
}
2.浮点型数据的分割
//浮点型数据
QStringList strList;
QString strVal = "volt: 27.5mV";
QRegExp rxlen("(\\d*\\.\\d+)(?:\\s*)(mA|mV|V)");
int = pos = rxlen.indexIn(strVal);
if (pos > -1) {
strList = rxlen.capturedTexts();
if(strList.size() >= 3)
{
str = strList.at(0);//"27.5mV"
strNum = strList.at(1);//"27.5"
strUnit = strList.at(2);//"mV"
}
}