按条件获取结果列表
Get a list of results from by conditions
我想通过这个 reg 表达式条件得到一个结果列表:
QRegExp rx(
"(https://)"
"(.*)"
"(\.jpg)"
);
QStringList list;
int pos = 0;
while ((pos = rx.indexIn("jpegData_https://sfasdfsf_sadlfkjnsdlfjhn.jpgasodjfhasdfoho;usdoauhfsvc.asdfkpjhttps://adfklja32908jf0jmn01.jpg", pos)) != -1)
{
list << rx.cap(0);
pos += rx.matchedLength();
}
for(auto it : list)
{
qDebug() << it;
}
我知道了:
"pegData_https://sfasdfsf_sadlfkjnsdlfjhn.jpgasodjfhasdfoho;usdoauhfsvc.asdfkpjhttps://adfklja32908jf0jmn01.jpg"
我需要得到:
https://sfasdfsf_sadlfkjnsdlfjhn.jpg
https://adfklja32908jf0jmn01.jpg
请帮帮我,QRegExp 条件有什么问题?
默认情况下,匹配是贪心的。您想要的行为应该只是在 QRegExp 上调用 setMinimal(true) 的情况。
例如
QRegExp rx("(https://)(.*)(\.jpg)");
rx.setMinimal(true);
我想通过这个 reg 表达式条件得到一个结果列表:
QRegExp rx(
"(https://)"
"(.*)"
"(\.jpg)"
);
QStringList list;
int pos = 0;
while ((pos = rx.indexIn("jpegData_https://sfasdfsf_sadlfkjnsdlfjhn.jpgasodjfhasdfoho;usdoauhfsvc.asdfkpjhttps://adfklja32908jf0jmn01.jpg", pos)) != -1)
{
list << rx.cap(0);
pos += rx.matchedLength();
}
for(auto it : list)
{
qDebug() << it;
}
我知道了:
"pegData_https://sfasdfsf_sadlfkjnsdlfjhn.jpgasodjfhasdfoho;usdoauhfsvc.asdfkpjhttps://adfklja32908jf0jmn01.jpg"
我需要得到:
https://sfasdfsf_sadlfkjnsdlfjhn.jpg
https://adfklja32908jf0jmn01.jpg
请帮帮我,QRegExp 条件有什么问题?
默认情况下,匹配是贪心的。您想要的行为应该只是在 QRegExp 上调用 setMinimal(true) 的情况。
例如
QRegExp rx("(https://)(.*)(\.jpg)");
rx.setMinimal(true);