Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrazenia regularne
Forum PHP.pl > Forum > PHP
dprezes
Jest nastepujący problem:

Za pomocą wyrażeń regularnych z kodu strony www chcę znaleźć same daty, z tym że niektóre z nich mają postać ##.##.## a inne ##.##.## - ##.##.##

Gdy wystąpi ten drugi przypadek to te dwie daty powinny być traktowane jako jeden string a nie dwa osobne.

Poniżej przykład kodu z którego daty są wycinane:

</tr>
<tr>
<td class="eventsCalDate" width="240" height="15">01.07.07</td>
</tr>
///

</tr>
<tr>
<td class="eventsCalDate" width="240" height="15">23.06.07 - 01.07.07</td>
</tr>
<tr>



Moje propozycje wyrażeń regularnych:
preg_match("/[0-9]{2}\W[0-9]{2}\W[0-9]{2}|[0-9]{2}\W[0-9]{2}\W[0-9]{2} - [0-9]{2}\W[0-9]{2}\W[0-9]{2}/", $myStr, $date);

//preg_match("/[0-9]{2}\W[0-9]{2}\W[0-9]{2}|( - [0-9]{2}\W[0-9]{2}\W[0-9]{2})/", $myStr, $date);


Proszę o pomoc w poprawieniu tego wyrażenia bo dosłownie utknołem z robotą sad.gif
Cysiaczek
To jeszcze wyjaśnij, co to ma wspólnego z programowaniem obiektowym.
dprezes
Ok, to doradź gdzie ten temat bardziej pasuje, bo przecież nie ma na tym forum działu dotyczącego wyrażeń regularnych...

---
Ale jest forum dotyczące PHP, gdzie
wyrażenia regularne idealnie się nadają,
ponieważ dotyczą tego języka. : )
---
~strife
starach
Nie prościej jest użyć \. niż \W ?
Cytat
Gdy wystąpi ten drugi przypadek to te dwie daty powinny być traktowane jako jeden string a nie dwa osobne.
Mógłbyś to jakoś doprecyzować bo nie za bardzo rozumiem.
I jeszcze mały OT: Nie wiem gdzie pasuje ale na pewno nie na programowanie obiektowe smile.gif Proponuję dział główny PHP z tagiem [PCRE] lub preg_*
doseo
Wybacz ale nie analizowałem Twoich wyrażeń.
U mnie zapis poniżej działa w pełni poprawnie
  1. <?php
  2. $str = ' </tr>
  3. <tr>
  4. <td class="eventsCalDate" width="240" height="15">01.07.07</td>
  5. </tr>
  6. ///
  7.  
  8. </tr>
  9. <tr>
  10. <td class="eventsCalDate" width="240" height="15">23.06.07 - 01.07.07</td>
  11. </tr>
  12. <tr>';
  13.  
  14. preg_match_all( '/([0-9]{2}).([0-9]{2}).([0-9]{2}) - ([0-9]{2}).([0-9]{2}).([0-9]{2})|([0-9]{2}).([0-9]{2}).([0-9]{2})/' , $str, $date, PREG_SET_ORDER );
  15.  
  16. print_r( $date );
  17. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.