2017-05-26 113 views
0

我有这样的字符串。RegEx重叠字符串

[system]a[/system][system]b[/system][system]c[/system]

我想回到[系统]和[/系统]标签之间的值。

因此,对于这个例子,它应该返回a,b,c。 (在php中用preg_match_all函数)

我试图使用这种模式\[system\](.*)\[\/system\],但它返回a[/system][system]b[/system][system]c

它只需要第一个开始标签并结束与最后结束标记。

我该怎么做?

+0

添加'?'即改变'(。*)'为非贪婪'(。*?)' – degant

+0

@degant谢谢,它工作。你应该在答案部分发表。 –

回答

1

使你的量词非贪婪(不情愿)。添加?这样的:

(.*?) 

这将指示正则表达式匹配尽可能少,而不是贪婪和尽可能多的匹配。