❝使用QRegExp实现字符串匹配和组捕获的功能。 ❞
QRegExp rx("height: (\\d+)");
int pos(0);
int count(0);
QString content("width: 20; height: 30; text: helloworld; height: 40");
/* 遍历查找匹配。 */
while ((pos = rx.indexIn(content, pos)) != -1) {
/* 打印获取每次匹配到的结果 */
qDebug() << "index: " << QString::number(count)
<< "Result: " << rx.cap(0);
QStringList capturedTexts = rx.capturedTexts();
/* 去除结果(rx.cap(0))后得到组捕获列表。 */
capturedTexts.removeFirst();
/* 打印获取所有组捕获的结果。 */
qDebug() << "index: " << QString::number(count)
<< "Capture List: " << capturedTexts;
/* 更新匹配到字符串的位置。 */
pos += rx.matchedLength();
count++;
}
打印输出:
index: "0" Result: "height: 30"
index: "0" Capture List: ("30")
index: "1" Result: "height: 40"
index: "1" Capture List: ("40")