首先,我知道我可以得到非常相同的结果与爆炸,只是想知道为什么它不工作在PHP
preg_split('/(.+,)+(.+)/im', 'New York, NY, United States');
返回
array (
0 => '',
1 => '',
)
为什么?它应该返回['New York, NY, ', 'United States']
,对吧?
使用preg_split你可以做:
preg_split("/,s/", 'New York, NY, United States');
这个函数需要分隔符的模式
你实际上是在做一个匹配你想要的,而不是你想用什么来分割:
preg_match('/(.*,)+ (.*)/', $subject, $result);
将得到$result
注意:我已经添加了一个空格并删除了多行修饰符,在你的情况下不需要。
如果您想使用preg split,则需要使用负向前看来获得最后的,
:
preg_split('/(,)(?!.*,)/i', 'New York, NY, United States');
为了获得数组:['New York, NY, ', 'United States']
,删除第二个量词并使用preg_match:
preg_match('/^(.+,)(.+?)$/im', 'New York, NY, United States', $match);