RegExp-жадность

LinoGE

Guest
RegExp-жадность

---------------------------------------
Люди привет.
У меня проблема возникла с регулярными выражениями. Значит смысл в том, что есть html-страница гостевой книги, там куча сообщений и мне нужно их все оттуда считать в массив. Сообщения находятся между тегами <small> и <br>&nbsp;&nbsp;&nbsp; Я пишу что-то типа

preg_match_all('/<small>(.*)<br>&nbsp;&nbsp;&nbsp;/',$file, $message);

Это вроде работает, но тогда, когда в тексте сообщение нету тегов <br> Если есть тэги <br> то оно "заглатывает" мне начиная от первого тэга <small> во всей странице. Я много чего пробовал, получалось, что у меня либо получается текст с первого тега <small> до <br> либо от <small> до первого тэга <br> в тексте, он не понимает &nbsp;&nbsp;&nbsp;
Короче, я так понял он "жадничает", как это отключить? Я чилат мануалку, делал и так (.*?) и писал /U после выражения - ничего не получается.
Я уже совершенно запутался, вчера часа 4 просидел, чего я только не пробовал :((((((
Спасибо.
 

Popoff

popoff.donetsk.ua
хм.. :) странно :) а у меня оба варианта выдают одинаковый ответ:
1)
PHP:
preg_match_all('/<a>(.*?)<b>c/','<a>1<b>c2<a><a><b>c<a><a><b><b>c',$m);
print_r($m);
2)
PHP:
preg_match_all('/<a>(.*)<b>c/U','<a>1<b>c2<a><a><b>c<a><a><b><b>c',$m);
print_r($m);
ответ:
Код:
Array
(
    [0] => Array
        (
            [0] => <a>1<b>c
            [1] => <a><a><b>c
            [2] => <a><a><b><b>c
        )

    [1] => Array
        (
            [0] => 1
            [1] => <a>
            [2] => <a><b>
        )

)
или здесь что-то не так?
 
Сверху