PHP:获取从开始到第 3 次出现的 '%' 的字符串子字符串


PHP: get substring of string from start to the 3rd occurrence of '%'

我得到了一个带有百分比列表的不同字符串:

'51% 20% 19% 6% 3% 2% 2% ...'

如何将字符串剪切为:

'51% 20% 19%'

也许一些正则表达式?

您可以匹配到第 3 次出现百分号。

$str = '51% 20% 19% 6% 3% 2% 2%';
preg_match('/^(?:[^%]*%){3}/', $str, $match);
echo $match[0];                 //=> "51% 20% 19%"

一种冗长的方式是..

$str = '51% 20% 19% 6% 3% 2% 2%';
$val = explode(' ', $str);
echo "$val[0] $val[1] $val[2]"; //=> "51% 20% 19%"