我有一个字符串,例如:
QString输出;
Output =“ Duration:00:01:25.65,start:0.050000,bitrate:2709 kb / s”`;
我的问题是如何分别获得持续时间,开始时间和比特率值。
例如,我需要获取比特率值,因此如何在C ++中使用正则表达式获取比特率值。
请注意,我对正则表达式不了解。
最佳答案
您至少应该尝试阅读QRegExp。有一些例子。使用reg表达式,您可以使用捕获组QRegExp("Duration:\\s*(\\d{2}:\\d{2}:\\d{2}.\\d{2})")
,例如,将匹配您的持续时间或QRegExp("start:\\s*(\\d+\\.\\d+),")
在捕获组中开始。如果字符串始终具有此设置,则易于过滤。
现在由您来找到比特率
编辑:
QString Output;
Output="Duration: 00:01:25.65, start: 0.050000, bitrate: 2709 kb/s";
QRegExp rx = QRegExp("Duration:\\s*(\\d{2}:\\d{2}:\\d{2}.\\d{2}),\\s*start:\\s*(\\d+\\.\\d+),\\s*bitrate:\\s*(\\d*)\\s*kb/s");
rx.indexIn(Output);
QStringList qsl = rx.capturedTexts();
for(int i=0; i<qsl.count(); i++)
{
qDebug()<<"Da Data Thing: "<< i << " Da Value Thing: " << qsl.at(i);
}
qsl.at(1)应该是持续时间。
qsl.at(2)应该启动。
qsl.at(3)应该是速率。