Извлечение URL-адресов из строки с помощью QRegularExpression - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть строка, подобная приведенной ниже:

on prepareFrame
  go to frame 10
    goToNetPage "http://www.apple.com"
    goToNetPage "http://www.cnn.com"
    etc..
end 

Я хочу извлечь все URL-адреса из этой строки с помощью QRegularExpression.Я уже пробовал:

QRegularExpression regExp("goToNetPage \"\\w+\"");
QRegularExpressionMatchIterator i = regExp.globalMatch(handler);
while (i.hasNext()) {
    QRegularExpressionMatch match = i.next();
    QString handler = match.captured(0);
}

Но это не работает.

1 Ответ

0 голосов
/ 19 декабря 2018

Вы можете использовать

QRegExp regExp("goToNetPage\\s*\"([^\"]+)");
QStringList MyList;
int pos = 0;

while ((pos = regExp.indexIn(handler, pos)) != -1) {
    MyList << regExp.cap(1);
    pos += regExp.matchedLength();
}

Шаблон

goToNetPage\s*"([^"]+)

Он соответствует goToNetPage, 0 или более пробельных символов, " и затем захватывает в Группу 1 любую 1+ символы, отличные от " - требуемое значение доступно с помощью regExp.cap(1).

...