PHP Regex结束运算符从一开始就排在第六位


PHP Regex end operator to be 6th from the start

我想得到一个数据的值,它里面有很多参数(页面实际上太大了,但我会放上我需要的东西和我正在使用的东西)

&data=a=3&b=token&c=1424551692&d=1&e=kingkongtitle&zxc=7ee&f33=a22asf8asfl2sdiog383g&hh=a22asf8asfl2sdiog383g-dwToc&

我使用以下regex,但它在开始和停止之间获取值是有意义的:

preg_match("/data'=(.+?)'&/",$output, $newvar);

上面只得到了"a=3"它应该得到了所有的完整。我可以指定最后一个&但实际上它一直在变化,所以我不可能这么做。

我在想一个解决方案,我可以说起始值是上面指定的值,结束值是第5个或第6个"&",它忽略了另一个&在第5名或第6名之前。

您可以使用{6}再次重复相同的字符串,最多6次

 preg_match_all("/data=((?:[^&]*&){6})/", $in, $out);

甚至

 preg_match_all("/data=((?:.*&){6})/", $in, $out);