当前位置: 首页 > wzjs >正文

建站之星 网站排名品牌营销策略分析论文

建站之星 网站排名,品牌营销策略分析论文,APP客户端网站建设,wordpress显示浏览次数目录 1. 获取文件路径中的文件名,去掉后缀,然后提取文件名中的数字 方法一:使用QFileInfo和正则表达式 方法二:使用QString的字符串操作 方法三:提取特定格式的数字(如日期) 注意事项 2.在…

目录

1. 获取文件路径中的文件名,去掉后缀,然后提取文件名中的数字

方法一:使用QFileInfo和正则表达式

方法二:使用QString的字符串操作

方法三:提取特定格式的数字(如日期)

注意事项

2.在QT中判断字符串是否以数字结尾并获取数字

方法一:使用QChar遍历(适合简单情况)

方法二:使用正则表达式(更灵活)

方法三:处理文件名(先去掉扩展名)

方法四:仅检查最后一位是否是数字

性能比较

完整示例


1. 获取文件路径中的文件名,去掉后缀,然后提取文件名中的数字

方法一:使用QFileInfo和正则表达式

#include <QFileInfo>
#include <QRegularExpression>
#include <QDebug>void extractNumbersFromFilename(const QString& filePath) {// 1. 获取文件名(不带路径)QFileInfo fileInfo(filePath);QString fileName = fileInfo.fileName();// 2. 去掉文件扩展名QString baseName = fileInfo.baseName();// 3. 提取文件名中的数字QRegularExpression re("(\\d+)");QRegularExpressionMatchIterator i = re.globalMatch(baseName);qDebug() << "原始路径:" << filePath;qDebug() << "文件名:" << fileName;qDebug() << "去掉后缀:" << baseName;qDebug() << "包含的数字:";while (i.hasNext()) {QRegularExpressionMatch match = i.next();QString numberStr = match.captured(1);qDebug() << numberStr;}
}// 使用示例
extractNumbersFromFilename("C:/path/to/file/test123_456file.txt");

方法二:使用QString的字符串操作

#include <QFileInfo>
#include <QDebug>void extractNumbersFromFilenameSimple(const QString& filePath) {// 1. 获取文件名(不带路径和后缀)QFileInfo fileInfo(filePath);QString baseName = fileInfo.baseName();// 2. 提取数字QString numbers;for (const QChar& ch : baseName) {if (ch.isDigit()) {numbers.append(ch);}}qDebug() << "原始路径:" << filePath;qDebug() << "去掉后缀的文件名:" << baseName;qDebug() << "提取的数字:" << numbers;
}// 使用示例
extractNumbersFromFilenameSimple("C:/path/to/file/image20230415.jpg");

方法三:提取特定格式的数字(如日期)

如果需要提取特定格式的数字(如YYYYMMDD日期),可以使用更精确的正则表达式:

void extractDateFromFilename(const QString& filePath) {QFileInfo fileInfo(filePath);QString baseName = fileInfo.baseName();// 匹配8位连续数字(如20230415)QRegularExpression re("(\\d{8})");QRegularExpressionMatch match = re.match(baseName);if (match.hasMatch()) {QString dateStr = match.captured(1);qDebug() << "找到日期:" << dateStr;} else {qDebug() << "未找到符合格式的日期";}
}

注意事项

  1. 路径分隔符:QT会自动处理不同操作系统下的路径分隔符(/或\)

  2. 多个数字:方法一会提取所有连续的数字,方法二会将所有数字合并

  3. 性能考虑:对于简单需求,方法二的字符串操作更高效;复杂匹配建议使用方法一的正则表达式

  4. 文件名格式:如果文件名有固定格式(如"report_2023_04.txt"),可以调整正则表达式更精确匹配

选择哪种方法取决于你的具体需求:

  • 需要提取所有数字 → 方法一

  • 只需要合并所有数字 → 方法二

  • 需要特定格式的数字 → 方法三

2.在QT中判断字符串是否以数字结尾并获取数字

方法一:使用QChar遍历(适合简单情况)

#include <QString>
#include <QDebug>// 判断是否以数字结尾并获取数字
QPair<bool, QString> getEndingDigits(const QString& str) {if (str.isEmpty()) return qMakePair(false, QString());QString digits;for (int i = str.length() - 1; i >= 0; --i) {if (str[i].isDigit()) {digits.prepend(str[i]);} else {break;}}return qMakePair(!digits.isEmpty(), digits);
}// 使用示例
auto result = getEndingDigits("file123");
if (result.first) {qDebug() << "以数字结尾,数字是:" << result.second;  // 输出 "123"
} else {qDebug() << "不以数字结尾";
}

方法二:使用正则表达式(更灵活)

#include <QRegularExpression>QPair<bool, QString> getEndingDigitsRegex(const QString& str) {QRegularExpression re("(\\d+)$");QRegularExpressionMatch match = re.match(str);if (match.hasMatch()) {return qMakePair(true, match.captured(1));}return qMakePair(false, QString());
}// 使用示例
auto result = getEndingDigitsRegex("image2023");
if (result.first) {qDebug() << "匹配到结尾数字:" << result.second;  // 输出 "2023"
}

方法三:处理文件名(先去掉扩展名)

#include <QFileInfo>QPair<bool, QString> getFilenameEndingDigits(const QString& filePath) {QFileInfo fi(filePath);QString baseName = fi.baseName();return getEndingDigitsRegex(baseName);  // 使用方法二的正则
}// 使用示例
auto result = getFilenameEndingDigits("/path/to/document123.pdf");
if (result.first) {qDebug() << "文件名以数字结尾:" << result.second;  // 输出 "123"
}

方法四:仅检查最后一位是否是数字

如果只需要检查最后一位是否是数字(不提取连续数字):

bool isLastCharDigit(const QString& str) {return !str.isEmpty() && str.back().isDigit();
}// 使用示例
qDebug() << isLastCharDigit("test1");  // true
qDebug() << isLastCharDigit("1test");  // false

性能比较

  1. QChar遍历:最快,适合简单需求

  2. 正则表达式:最灵活,可处理复杂模式

  3. 文件名处理:需要额外步骤但更准确

完整示例

#include <QCoreApplication>
#include <QString>
#include <QDebug>
#include <QRegularExpression>
#include <QFileInfo>int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QString test1 = "file123";QString test2 = "123file";QString test3 = "/path/to/image2023.jpg";// 方法一auto result1 = getEndingDigits(test1);qDebug() << test1 << ":" << result1;// 方法二auto result2 = getEndingDigitsRegex(test2);qDebug() << test2 << ":" << result2;// 方法三auto result3 = getFilenameEndingDigits(test3);qDebug() << test3 << ":" << result3;return a.exec();
}

选择建议:

  • 只需快速检查 → 方法四

  • 需要提取数字 → 方法一或二

  • 处理文件名 → 方法三

http://www.dtcms.com/wzjs/20620.html

相关文章:

  • 西安网站建设设计公司企业培训师资格证报考2022
  • 做服装广告素材网站打开app下载
  • 武汉营销网站设计搜索引擎优化的方法
  • 国外做农产品有名的网站有哪些seo优化一般多少钱
  • 那个网站做外贸好百度最怕哪个投诉电话
  • 专门做调查问卷的网站南京响应式网站建设
  • 中国建设银行招投标网站网络销售怎么聊客户
  • 软装设计师招聘搜索引擎优化的内容有哪些
  • 学做网站论坛课程东莞谷歌推广公司
  • 上传了网站标志 功能链接快速网站
  • 网站建设 中企动力西安谷歌官网登录入口
  • 同步朋友圈到wordpress天津seo网站管理
  • 怀化订水网站洛阳网站建设
  • 石家庄网站开发建设百度指数怎么看排名
  • 武汉做网站哪家最好互联网营销师怎么做
  • wordpress vps建站视频推广平台
  • 网站做seo优化有什么优势企业qq怎么申请注册
  • ftp网站劫持在线搭建网站
  • 山西品牌网站建设百度客户端下载
  • 淘宝网页制作模板网站排名优化公司
  • 搭建论坛网站信息流推广的竞价机制是
  • 织梦系统网站打开速度慢竞价托管公司联系方式
  • 购物商城网站的制作凡科建站代理登录
  • 做义工的同城网站百度点击软件
  • 怎样让百度收取我的网站百度问答怎么赚钱
  • 为什么没有网站做图文小说app用户量排名
  • 温州做网站的公司有哪些百度seo推广免费
  • 手机兼职可以做什么长沙官网优化公司
  • 太原正规的做定制网站制作上海百度seo网站优化
  • 企业网站推广成功案例网站搜索排名查询