C++ 按条件从中获取结果列表
我希望通过reg表达式的此条件获取重结果列表:C++ 按条件从中获取结果列表,c++,qt,qt5,qregexp,C++,Qt,Qt5,Qregexp,我希望通过reg表达式的此条件获取重结果列表: QRegExp rx( "(https://)" "(.*)" "(\\.jpg)" ); QStringList list; int pos = 0; while ((pos = rx.indexIn("jpegData_https://sfasdfsf_sadlfk
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;
}
我需要得到:
https://sfasdfsf_sadlfkjnsdlfjhn.jpg
https://adfklja32908jf0jmn01.jpg
请帮帮我,QRegExp条件有什么问题?默认情况下,匹配是贪婪的。您想要的行为应该只是调用您的QRegExp e、 g
为什么在
rx
中使用[]
?@jarod42,sry,这是一个打字错误,已修复。它解释了为什么您的匹配从peg
开始,因为p
在[htps]
中。然后帕迪回答问题的另一部分。非常感谢!这是工作!
"pegData_https://sfasdfsf_sadlfkjnsdlfjhn.jpgasodjfhasdfoho;usdoauhfsvc.asdfkpjhttps://adfklja32908jf0jmn01.jpg"
QRegExp rx("(https://)(.*)(\\.jpg)");
rx.setMinimal(true);