$content = "[2][6][11]";
Это я хотел бы разделить на массив со значениями [2], [6] и [11].
preg_split("/\[*\]/i", $content);
Неверный вывод: Array ([0] => [2 [1] => [5 [2] =>)
Любая помощь, что не так с регулярным выражением.
Благодарю.
Вы можете использовать lookarounds для этого split
:
$content = "[2][6][11]";
print_r(preg_split('/(?<=\])(?=\[)/', $content));
Выход:
Array
(
[0] => [2]
[1] => [6]
[2] => [11]
)
Ты можешь использовать lookarounds проверить, какие символы находятся вокруг позиции, которую вы хотите найти, не сопоставляя их.
print_r(preg_split('~(?<=])(?=\[)~', $content));
Обратите внимание, что если вы уже знаете, как отформатирована ваша строка, вы также можете использовать preg_match_all
с более простым рисунком: ~\[\d+]~
Вы также можете сделать это с preg_match_all
:
$content = "[2][6][11]";
preg_match_all("/\[.*\]/Ui", $content, $matches);
$result = $matches[0];
print_r($result);
Выход:
Array
(
[0] => [2]
[1] => [6]
[2] => [11]
)