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

  • Автор темы Автор темы Ord
  • Дата начала Дата начала

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 ) )

тоесть, считывается только последний элемент в квадратных скобках, а мне нужен каждый элемент. Натолкните пожалуйста на путь истиный :)
 
первая звездочка съедает все до последнего элемента
убери все, что слева и справа от квадратных скобок
а потом почитай про жадность и исправь выражение в скобках :)
 
В результате написал так:
preg_match_all("/\[(.*?)\]+/i", $request, $el);

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