[PHP][Problem] Wyrażenia regularne

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
nstn
Posty: 2
Rejestracja: śr sty 25, 2006 1:26 am

[PHP][Problem] Wyrażenia regularne

Post autor: nstn »

[php]<?php
$szukany = '<td class=quoteUp>([0-9]{2,4}\.[0-9]{2})*</td>';
$plikcaly ="<td class=quoteUp>121.22</td>asdfasdf<td class=quoteUp>87.45</td>
$plik2=eregi($szukany, $plikcaly,$r);
?>[/php]

Z pomocą funkcji eregi chciałbym tak sparsować większy plik (tutaj przykladowo $plikcaly), aby te liczby mozna było pozyskać i zapisać do pliku. W wyniku dzialania tego kodu tylko pierwsza liczba jest kopiowana do tablicy $r (i ją potrafie zapisac do pliku), ale co zrobić żeby obie te liczby pozyskać, a nawet w orginalnym pliku byłoby ich dużo więcej?? Jak dodatkowo zapisać wyrażenie regularne aby zapisywało też wyrazy oraz liczby?

W zasadzie to docelowo musze sparsować taki text:

Kod: Zaznacz cały

<td align=left >NAZWA WŁASNA</td>
<td colspan="2">
</td>
<td class=quoteUp><b>+123</b></td>
<td class=quoteUp>+12</td>
<td class=quoteUp>+45</td>
<td class=quoteUp>+12</td>
<td class=quoteUp>+0.4</td>
<td class=quoteUp>+4.6</td>
<td align=center >05-23</td>

</tr>
<tr bgcolor="#F5F5F5">
<td align=left >NAZWA WLASNA 2</a></td>
<td colspan="2">
</td>
<td class=quoteUp><b>12.42</b></td>
<td class=quoteUp>+0.10</td>

Generalnie takiego textu bedzie z 7 podaniowych, ale to co podalem wyzej (forma) generalnie sie nie zmienia


Please Help, bo nie mam już do tego siły.

nstn

1. W temacie określaj język, do którego odnosi się topic [poprawione]
2. Do prezentacji fragmentu kodu korzystaj z odpowiedniego BBCode [poprawione]
rafcio8405
Nowy
Nowy
Posty: 43
Rejestracja: śr gru 14, 2005 12:47 pm
Lokalizacja: Warszawa
Kontakt:

Re: [PHP][Problem] Wyrażenia regularne

Post autor: rafcio8405 »

poczytaj sobie o [manual]preg_match[/manual] i [manual]preg_match_all[/manual]
nstn
Posty: 2
Rejestracja: śr sty 25, 2006 1:26 am

Re: [PHP][Problem] Wyrażenia regularne

Post autor: nstn »

te funkcje o których piszesz nie rozwiązują problemu, i w zasadzie działają prawie tak samo jak ereg (lub eregi). [a poza tym to u mnie nie dziala preg_match_all ze wzgledu na PREG_PATTERN_ORDER, ktorego uważa za blednego, nawet jak wpisze PREG_SET_ORDER ( lub w ogóle bez nich) to i tak jest error]]
rafcio8405
Nowy
Nowy
Posty: 43
Rejestracja: śr gru 14, 2005 12:47 pm
Lokalizacja: Warszawa
Kontakt:

Re: [PHP][Problem] Wyrażenia regularne

Post autor: rafcio8405 »

z tego co mi się wydaje ereg ieregi działają w ten sposób gdy znajdą odpowidni string pasujący do wyrażenia przestają go szukać. Zawsze do dużych przeszukiwań zprzęgałem funkcje z PCRE niż POSIX Regex.
ODPOWIEDZ