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

Qt 正则表达式提取文件中的 USB 设备 ID

Qt 正则表达式提取文件中的 USB 设备 ID

flyfish

文档内容

Bus: 001 Device: 001 Description: 1d6b:0002 Linux Foundation 2.0 root hub
Bus: 002 Device: 003 Description: 0e0f:0002 , Inc. USB Hub
Bus: 002 Device: 002 Description: 0e0f:0003 , Inc. Mouse
Bus: 002 Device: 001 Description: 1d6b:0001 Linux Foundation 1.1 root hub

代码

#include <QCoreApplication>
#include <QFile>
#include <QTextStream>
#include <QStringList>
#include <QRegularExpression>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 默认文件路径
    QString defaultFilePath = "./usb_devices.txt";

    // 从命令行参数中获取文件路径
    QString filePath = (argc > 1) ? QString::fromLocal8Bit(argv[1]) : defaultFilePath;

    // 打开文件
    QFile file(filePath);
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
        qCritical() << "无法打开文件:" << filePath;
        return 1;
    }

    // 读取文件内容
    QTextStream in(&file);
    QString content = in.readAll();
    file.close();

    // 使用正则表达式匹配 USB 设备的 ID
    QRegularExpression regex("Description:\\s*([0-9a-fA-F]{4}:[0-9a-fA-F]{4})");
    QRegularExpressionMatchIterator i = regex.globalMatch(content);

    while (i.hasNext()) {
        QRegularExpressionMatch match = i.next();
        QString id = match.captured(1);
        qDebug() << "USB 设备 ID:" << id;
    }

    return 0;
}

结果

USB 设备 ID: "1d6b:0002"
USB 设备 ID: "0e0f:0002"
USB 设备 ID: "0e0f:0003"
USB 设备 ID: "1d6b:0001"

http://www.kler.cn/a/392652.html

相关文章:

  • Spring Boot 1.x 版本可以集成 Spring Cloud Sleuth
  • 一种基于深度学习的反无人机无人值守系统及方法
  • C# 委托与匿名方法
  • 【再谈设计模式】抽象工厂模式~对象创建的统筹者
  • C++20 中最优雅的那个小特性 - Ranges
  • ISAAC SIM踩坑记录--ubuntu 22.04操作系统安装
  • Spring Boot 启动时自动配置 RabbitMQ 交换机、队列和绑定关系
  • Anolis8.2系统中搭建python环境
  • uniapp+vue2 设置全局变量和全局方法 (兼容h5/微信小程序)
  • vue3+ts+antd 运行报错 convertLegacyToken is not a function
  • SQL集合运算
  • 除了 Postman,还有什么好用的 API 管理工具吗?
  • LeetCode【0033】搜索旋转排序数组
  • C/C++基础知识复习(20)
  • LeetCode通过栈解题逆波兰表达式 有效的括号 栈的压入、弹出序列 最小栈
  • 重构代码之用委托替代继承
  • 在linux中使用nload实时查看网卡流量
  • Unity 2022 Nav Mesh 自动寻路入门
  • JavaScript高级程序设计基础(四)
  • 关系型数据库和非关系型数据库详解
  • AXI DMA IP BUG踩坑记录
  • gin入门
  • 网上商城系统设计与Spring Boot框架
  • NoSQL数据库与关系型数据库的主要区别
  • SpringMVC案例学习(一)--计算器设计登录页面设计
  • 【代码随想录day29】【C++复健】134. 加油站;135. 分发糖果;860.柠檬水找零;406. 根据身高重建队列