在Qt中使用正则表达式在两个标签之间查找字符串

时间:2016-05-18 10:47:54

标签: c++ regex qt parsing

任何人都可以帮我这个吗?

我有一个包含N个子串的字符串,由标签分隔,我必须得到所有的子串。字符串就像

  

STARTfoo barENDSTARThi!ENDSTARTstackoverflowrulezEND

我想获得START / END标签之间的所有字符串,我尝试了一些没有运气的正则表达式:

  

(START)(。*)(END)给出了第一个和最后一个标签之间的所有竞争

     

(开始)(\ w +)(END)给我没有结果

代码很简单:

doCancelEditor()

我喜欢这样的结果列表:

  

STARTfoo栏END

     

STARThi那里!结束

     

STARTstackoverflowrulezEND

有任何帮助吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

rx.setMinimal(true).*一起使用以使其变得懒惰:

QRegExp rx("START.*END");
rx.setMinimal(true);

请参阅QRegExp::setMinimal docs

  

启用或禁用最小匹配。如果 minimal false,则匹配为贪婪(最大),这是默认值。