如何用两个不同的定界符在两个不同的位置拆分字符串,第一个是空格,而空格只能是它的第一个出现?。
第一次拆分是在第一个单词之后,
第二个拆分是基于特殊词的。
$string = 'BMW 220 2.0i 184Hk/270Nm TUNE Stage R 262Hk/425Nm';
我用两个词尝试了preg_split()
。
list($first,$middle,$last) = preg_split('/( ORG | TUNE )/',$string);
这种方法意味着我必须在第一次拆分后提供一个特殊的词。
因此,如何使用空白作为第一个定界符,并且仅在它的第一个出现时才能使它起作用。然后将其拆分为定义的单词?
虽然我确实提出了此解决方案,但是不确定这是否是最佳方法吗?
list($first,$string)=explode(' ', $string, 2);
list($middle,$last) = explode(' TUNE ',$string);
$first = BMW
$middle => 220 2.0i 184Hk/270Nm
$last => Stage R 262Hk/425Nm
答案 0 :(得分:2)
不一定要是 ,是吗?
preg_match('/^(\S+)\s+(.+)WORLD(.+)/', $string, $matches);
$matches[1]
现在是第一个空格之前的所有内容,$matches[2]
是该空格和“世界”之间的所有内容,$matches[3]
之后的所有内容。