[英]Find strings between two tags with regex in Qt
有人可以幫我嗎?
我有一個包含 N 個子字符串的字符串,由標簽分隔,我必須獲取所有子字符串。 字符串就像
STARTfoo barENDSTART你好!ENDSTARTstackoverflowrulezEND
我想獲取 START/END 標簽之間的所有字符串,我嘗試了幾個正則表達式,但沒有成功:
(START)(.*)(END) 給了我第一個和最后一個標簽之間的所有競爭
(START)(\\w+)(END) 沒有結果
代碼非常簡單:
QString l_str "STARTfoo barENDSTARThi there!ENDSTARTstackoverflowrulezEND";
QRegExp rx("(START)(\w+)(END)");
QStringList list;
int pos = 0;
while ((pos = rx.indexIn(l_str, pos)) != -1)
{
list << rx.cap(1);
pos += rx.matchedLength();
}
qWarning() << list;
我想要一個結果列表,如:
STARTfoo欄END
START你好!END
STARTstackoverflowrulezEND
有什么幫助嗎?
謝謝!
使用rx.setMinimal(true)
和.*
使其變得懶惰:
QRegExp rx("START.*END");
rx.setMinimal(true);
啟用或禁用最小匹配。 如果minimum為
false
,則匹配為貪婪(最大),這是默認值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.