Помогите мне с рисунком, пожалуйста. У меня есть строка с запятыми, как:
12v some, Item, which contains comma, Another item
Мне нужно разделить его запятыми и получить:
0 => '12v some'
1 => 'Item, which contains comma'
2 => 'Another item'
Как использовать правило, если есть строчные буквы после запятой не разделить стр?
Я использую [\ s,] [] [A-Z0-9] +, но он обрезает некоторый текст
Вы можете использовать решение на основе Lookahead, как
preg_split('~\s*,(?!\s*\p{Ll})\s*~', $s)
Увидеть regex demo
подробности
\s*
— 0+ пробелов,
— запятая(?!\s*\p{Ll})
— отрицательный прогноз, который не соответствует совпадению, если непосредственно справа от текущего местоположения есть 0+ пробелов (\s*
) с последующей строчной буквой Unicode (\p{Ll}
)\s*
— 0+ пробелов.$s = "12v some, Item, which contains comma, Another item";
$res = preg_split('~\s*,(?!\s*\p{Ll})\s*~', $s);
print_r($res);
Выход:
Array
(
[0] => 12v some
[1] => Item, which contains comma
[2] => Another item
)
Других решений пока нет …