在Qt中解析输出

在Qt中解析输出,qt,parsing,qprocess,Qt,Parsing,Qprocess,我只需要解析vol命令的输出来获取id,即仅abcd-1234,该id正在QProcess中使用。以下是获取卷序列号的代码: QProcess process; process.start("cmd /c vol C:"); process.waitForFinished(-1); QByteArray out = process.readAllStandardOutput(); qDebug() << out; QProcess过程; 进程启动(“cmd/c vol c:”);

我只需要解析
vol
命令的输出来获取id,即仅
abcd-1234
,该id正在
QProcess
中使用。以下是获取卷序列号的代码:

QProcess process;
process.start("cmd /c vol C:");
process.waitForFinished(-1);
QByteArray out = process.readAllStandardOutput();
qDebug() << out;
QProcess过程;
进程启动(“cmd/c vol c:”);
进程。waitForFinished(-1);
QByteArray out=进程.readAllStandardOutput();

qDebug()您可以使用带有QRegExp()的正则表达式来查找ID。 vol命令将始终返回相同的消息。因此,您可以逐行读取结果并搜索匹配行:

QRegExp rx( "The Volume Serial Number is (.+)\\."); // Match the line with the ID and store it.
if ( rx.exactMatch( line ) {
    QString id = rx.capturedTexts(1); // The first elt is the entire matching text.
    qDebug() << id;
}
QRegExp rx(“卷序列号为(+)\\”)//将该行与ID匹配并存储它。
如果(rx.exactMatch(行){
QString id=rx.capturedTexts(1);//第一个elt是整个匹配文本。

你可以再努力一点