проблема с preg_match_all

hussar

In code we trust!
проблема с preg_match_all

Всем доброе время суток!
Есть такая проблема:

обрабатываю текстовый файл с такой структурой:

вопрос |ответ|ответ|ответ|ответ
вопрос |ответ|ответ|ответ|ответ
вопрос |ответ|ответ|ответ|ответ


Чтобы определить правильно ли отформатирована строка использую следующее выражение:

PHP:
preg_match_all("/^(.*)\|(.*)\|(.*)\|(.*)\|(.*)/", $buffer, $arr);
но почему-то при такой проверке скриптсчитает удовлетворяющими условию строки:

вопрос
|ответ|ответ|ответ|ответ


или

вопрос |||||||| |ответ|ответ|ответ|ответ

Подскажите в каком направлении искать выход.
Всем заранее спасибо!
 

hussar

In code we trust!
т.е. я получаю массив и проверяю количество элементов и пустые ли они? Я правильно понял.

И все же хотелось узнать что неправильно в моем регулярном выражении :)
 

iliah

Новичок
квантификатор ограничения "жадности" - U

не на тот вопрос ответил - вместо * используй +
 

Demiurg

Guest
>т.е. я получаю массив и проверяю количество элементов и пустые ли они? Я правильно понял.
да, и еще нужно проверить количество получившихся элементов.
 

hussar

In code we trust!
спасибо, все понял, постараюсь сделать сейчас.
А где можно почитать про квантификатор ограничения жадности? :)
 

XiMiK

Новичок
на счёт жадности используй "?"
а почитать можно в оф. мануале, там где все preg_... описываются (если внимательно читать с регами разберёшся)
 
Сверху