使用 QRegularExpression 提取双引号内的字符串
Extract strings inside double quotes with QRegularExpression
我有如下字符串:
on prepareFrame
go to frame 10
goToNetPage "http://www.apple.com"
goToNetPage "http://www.cnn.com"
etc..
end
我想使用 QRegularExpression 从该字符串中提取所有 url。我已经试过了:
QRegularExpression regExp("goToNetPage \"\w+\"");
QRegularExpressionMatchIterator i = regExp.globalMatch(handler);
while (i.hasNext()) {
QRegularExpressionMatch match = i.next();
QString handler = match.captured(0);
}
但这不起作用。
您可以使用
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 组中 - 使用 [= 访问所需的值15=].
我有如下字符串:
on prepareFrame
go to frame 10
goToNetPage "http://www.apple.com"
goToNetPage "http://www.cnn.com"
etc..
end
我想使用 QRegularExpression 从该字符串中提取所有 url。我已经试过了:
QRegularExpression regExp("goToNetPage \"\w+\"");
QRegularExpressionMatchIterator i = regExp.globalMatch(handler);
while (i.hasNext()) {
QRegularExpressionMatch match = i.next();
QString handler = match.captured(0);
}
但这不起作用。
您可以使用
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 组中 - 使用 [= 访问所需的值15=].