Войти

Показать полную графическую версию : Опять регулярные


Dutchman Mihel
08-07-2004, 16:33
Есть вот такой код:

$string="><A name=9><FONT
color=#dddddd><B>9. Ghettoblaster</B></FONT>
<FONT color=#dddddd><B>10. The Oath Of The Goat</B></FONT><BR><BR>I have";

preg_match_all("/(?<=#dddddd><B>\d\.\s).+?(?=<\/B>)/m", $string, $matches);

print_r($matches);


Мне нужно чтобы из $string выдернулось:

Ghettoblaster и
The Oath Of The Goat

но выдергивается только
Ghettoblaster

Какбы переделать регуляр чтобы это поправить?

Vlad Drakula
08-07-2004, 18:20
Dutchman Mihel
$matches - это же массив, а не строка!

Dutchman Mihel
09-07-2004, 11:27
Vlad Drakula

конечно массив
и что из того

print_r($matches); выдает только одно значение

vadimiron
09-07-2004, 23:06
Dutchman Mihel
preg_match_all("/(?<=#dddddd><B>\d\.\s).+?(?=<\/B>)/m", $string, $matches);
\d-это число из 0-9, а у тебя там стоит 10, а 10 не входит в \d, поэтому надо вместо \d написать \d{2}, чтобы находились и 0, и 1

Добавлено:

Vlad Drakula
print_r может также весь массив выводить

Guest
11-07-2004, 18:17
vadimiron

спасибо, не заметил

Получилось вот так:

/(?<=#d{6}><B>\d\.\s|#d{6}><B>\d{2}\.\s).+?(?=<\/B>)/m




© OSzone.net 2001-2012