Как разбить строку, где первый разделитель - это самый первый пробел, а второй - слово в php? - PullRequest
0 голосов
/ 31 августа 2018

Как мне разбить строку на две разные позиции с двумя разными разделителями, где первым является пробел, и что пробел может быть только самым первым его появлением?.

Первый сплит после самого первого слова,
и второе разделение основано на специальном слове.

$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

1 Ответ

0 голосов
/ 31 августа 2018

Это не должен быть сплит , не так ли?

preg_match('/^(\S+)\s+(.+)WORLD(.+)/', $string, $matches);

$matches[1] теперь все перед первым пробелом, $matches[2] все между пробелом и "МИРОМ" и $matches[3] все после него.

...