Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenia regularne
Reptile ReX
post
Post #1





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 19.01.2008

Ostrzeżenie: (0%)
-----


Witam mam pewien problem, bardzo się staram, ale nadal nie mogę pojąć wyrażeń regularnych.
Tzn proste przykłady są jasne, ale chodzi np o wyciągnięcie jakiś danych ze strony www.

Wtedy już mieszam się ze wzorcem.

A więc posiada ktoś jakiś kurs dzięki któremu dowiedziałbym się jak popranie konstruować tego typu wzorce?

A może ktoś ma chwilkę i wytłumaczy mi to bardziej dokładnie, przeglądałem manual, różne kursy i książki, ale albo jest to słabo wytłumaczone, albo chaotycznie... albo po prostu mój mózg nie pracuje na tych falach.

Z góry dziękuje za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


A co mi tam, opiszę taki automat w PHP:

  1. $stateTable = array(
  2. '0.q1' => 'q1',
  3. '1.q1' => 'q2',
  4. '0.q2' => 'q3',
  5. '0.q3' => 'q3'
  6. );
  7.  
  8. $length = strlen($text);
  9. $state = 'q1';
  10. for($i = 0; $i < $length; $i++)
  11. {
  12. if(!isset($stateTable[$text[$i].'.'.$state]))
  13. {
  14. die('Blad na znaku '.$i);
  15. }
  16. $state = $stateTable[$text[$i].'.'.$state];
  17. }
  18. if($state == 'q3')
  19. {
  20. echo 'Zaakceptowano; słowo pasuje';
  21. }


Nawiasem mówiąc, nie jest to pierwsza osoba, której tłumaczę ideę wyrażeń regularnych w ten sposób. Automaty skończone są debilnie proste, zwłaszcza jak się je narysuje w formie diagramu, a pozwalają zrozumieć, co tak naprawdę można zrobić przy pomocy wyrażeń regularnych i jak to się dzieje, że one działają. Dotąd nie było większych problemów ze zrozumieniem.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 03:49