помогите с регулярным выражением

Ord

Новичок
помогите с регулярным выражением

К примеру есть такая строка:
[cлово1] ещё [cлово2], а также [cлово3]

Из неё необходимо выдрать каждое выражение, стоящее в квадратных скобках, я делаю следующим образом:
preg_match_all("/.*\[(.*)\].*+/i", $request, $el);

В результате получаю такой массивчик:
Array ( [0] => Array ( [0] => [cлово1] ещё [cлово2], а также [cлово3] ) [1] => Array ( [0] => cлово3 ) )

тоесть, считывается только последний элемент в квадратных скобках, а мне нужен каждый элемент. Натолкните пожалуйста на путь истиный :)
 

Dovg

Продвинутый новичок
первая звездочка съедает все до последнего элемента
убери все, что слева и справа от квадратных скобок
а потом почитай про жадность и исправь выражение в скобках :)
 

Ord

Новичок
В результате написал так:
preg_match_all("/\[(.*?)\]+/i", $request, $el);

Всё работает, спасибо :)
 

Bakti9rov

!*|=?
Ord
"+" - квантификатор <один или более>
Так по твоему получается: [...]], [...]]], [...]]]], ... тоже подходят
 
Сверху