一.section函数
1.1 语法格式
section ( QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault ) const
1.2 使用示例
类似split函数,先分隔,再按编号从左到右截取(负号为从右到左,可换算成从左到右的正编号,再从左到右截取)
QString sPath = QString("E:/Data/20210218/Section/test_00501_CH1.jpg");
//A 正号截取
QString sDate = sPath.section('/',0,2); //E:/Data/20210218(获取文件前两级路径)
//B 负号截取,仍从左往右
QString sCh = sPath.section('_',-2); //00501_CH1.jpg
QString sCh = sPath.section('_',-2,-2); //00501
//C 正号+负号截取
QString sDate = sPath.section('/',0,-2); //E:/Data/20210218/Section(获取文件所在的上级路径)
QString sDate = sPath.section('/',0,-3); //E:/Data/20210218(获取文件所在的上上级路径)
二.正则表达式
1.1 参考链接
1.2 使用示例(提取字符串中数字)
QString sName = QString("test_00501_CH1.jpg");
QRegExp qreg_exp("[^0-9]"); //数字以外的字符,等效于"\D"
QRegExp qreg_exp("\\D"); //数字以外的字符,window下\为转义字符,用\\表示\
QString new_str = sName.remove(qreg_exp); //00501
1.3 使用示例(是否包含字母)
QRegExp reg("[A-Za-z]");
if(m_sCh.contains(reg))//包含字母