
目录1.删除以固定某个字符串加数字的子字符串1.1.正则表达式推荐通用1.2.精准限定数字位数如固定 3 位数字1.3.删除独立单词前后带分隔符避免误伤1.4.替换而非直接删除1.删除以固定某个字符串加数字的子字符串场景举例要删除类似test123、abc009、img56这类「固定字符串 任意数字」片段1.1.正则表达式推荐通用核心正则说明固定前缀如img正则img\d\d 1 个及以上数字QString::remove(QRegularExpression)直接匹配删除#include QRegularExpression QString str img123_aaa_test456bbb_img789; // 删掉所有 img数字 片段 str.remove(QRegularExpression(img\\d)); qDebug() str; // 输出_aaa_test456bbb_批量删除多个固定前缀比如同时删除img数字、test数字QString str img111xx test222yy log333zz; // 匹配 imgxxx 或 testxxx 或 logxxx str.remove(QRegularExpression((img|test|log)\\d)); // 结果xx yy zz1.2.精准限定数字位数如固定 3 位数字匹配img001 ~ img999str.remove(QRegularExpression(img\\d{3}));1.3.删除独立单词前后带分隔符避免误伤例如字符串aimg123不要误删只删独立img123// 匹配两边非字母数字边界 \b str.remove(QRegularExpression(\\bimg\\d\\b));1.4.替换而非直接删除QRegularExpression reg(abc\\d); str.replace(reg, );关键补充说明Qt 正则里\d必须写成\\d单斜杠会编译报错QRegularExpressionQt5.15 稳定替代老旧QRegExp如果只删除第一个匹配项用replaceFirststr.replaceFirst(QRegularExpression(img\\d), );匹配包含 0 的数字、多位数全部兼容0、1、999、12345 均可未完待续。。。