Есть ли регулярное выражение для разделения строки, которые содержат специальный символ с пробелом? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть строка Pottery & Glass:Pottery & China:China & Dinnerware:Fiesta: Contemporary

Мне нужно разбить его на массив, как

['Pottery & Glass','Pottery & China:China & Dinnerware','Fiesta: Contemporary']

Делится на основе :. Но в Fiesta: Contemporary есть место с :. так что это одна строка, а другая не имеет пробела.

Если я использую PHP explode, тогда он разделит все, и я также попробовал split_str с помощью регулярных выражений, но безуспешно.

Я пытаюсь :(\s)* это регулярное выражение.

Проблема решена:

$data = preg_split('/:(?! )/','Pottery & Glass:Pottery & China:China & Dinnerware:Fiesta: Contemporary')

Выход:

array:4 [
  0 => "Pottery & Glass"
  1 => "Pottery & China"
  2 => "China & Dinnerware"
  3 => "Fiesta: Contemporary"
]
...