Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Опять регулярные (http://forum.oszone.net/showthread.php?t=31085)

Dutchman Mihel 08-07-2004 16:33 213159

Есть вот такой код:

Код:

$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 213160

Dutchman Mihel
$matches - это же массив, а не строка!

Dutchman Mihel 09-07-2004 11:27 213161

Vlad Drakula

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

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

vadimiron 09-07-2004 23:06 213162

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 213163

vadimiron

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

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

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



Время: 11:50.

Время: 11:50.
© OSzone.net 2001-