我正在尝试使用QRegExp提取两个单词之间的字符串。例如:
<info><timestamp>54</timestamp></info><info><timestamp>67</timestamp></info>
结果:
<timestamp>54</timestamp>
<timestamp>67</timestamp>
所以我正在使用以下RegEx:
<info>.+?</info>
在使用在线RegEx测试(例如https://regexr.com(找到两个匹配项)时,此RegEx可以正常工作。
但是当我使用以下代码时,它在QT 5.12中不起作用:
QRegExp rx("<info>.+?</info>");
rx.setMinimal(true);
QString recXML_ = "<info><timestamp>54</timestamp></info><info><timestamp>67</timestamp></info>";
int pos = 0;
int siz = 0;
while ((pos = rx.indexIn(recXML_, pos)) != -1)
{
pos += rx.matchedLength();
siz += pos;
qDebug()<<rx.capturedTexts()[0];
}
但是while条件永远不会满足。
要点: setMinimal解决方案(Find strings between two tags with regex in Qt)对我的问题不起作用。
有人知道这个问题和可能的解决方案吗?