【发布时间】:2016-05-18 10:47:54
【问题描述】:
谁能帮我解决这个问题?
我有一个包含 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;
我想要一个如下结果列表:
START富吧END
START你好!END
STARTstackoverflowrulezEND
有什么帮助吗?
谢谢!
【问题讨论】:
-
QRegex是否接受非贪婪元素,例如:START(.*?)END? -
@Galik:不,
QRegularExpression可以。