Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyjaśnienie regexpa
s_w_ir
post
Post #1





Grupa: Zarejestrowani
Postów: 315
Pomógł: 1
Dołączył: 6.08.2003
Skąd: Kielce

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


Książka: PHP4 Zaawansowane programowanie s.214-215
Niestety w tej książce nie znalazłam wyjaśnienia, więc pytam tu.

Jeżeli chcemy obsłużyć liczby z ewentualną końcówka dzisiętną używamy wyrażenia:
Kod
"^0|-?[1-9][0-9]*(,[0-9]{1,2})?$"

I tu jest wszystko zrozumiałe, ale nastepny kod służy do obsługi tych samych liczb co wyżej plus ewentualnie seperatora tysięcy w postaci "."(kropki):
  1. <?php
  2. $a = '1005.5.2.6..5000,9';
  3.  
  4. if(preg_match("/^0|-?[1-9]+|[0-9]{1,3}(.[0-9]{3})*(,[0-9]{1,2})?$/",$a)) echo "good";
  5. ?>

Dla przykładu który podałem również wyświetli good, ale to jest akurat mniej ważne. Bardziej mnie interesje co ma oznazać '+' i 'OR' po fragmencie "^0|-?[1-9]" (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) '+' normalnie oznacza "jeden lub więcej", ale tu do wyboru oprócz liczb z zakresu[1-9] ma być też dostępne 0 tak jak w przypadku do obsługi liczb bez separatora.

Może to zagmatwane, ale musze się dowiedzieć co i jak bo moja wiedza będzie niekompletna (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pozdrawiam.

***EDIT***
Ja nierozumiem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ludzie piszą tu takie reegexpy których ja nawet z podręcznikiem po polsku nie moge zrozumieć( choćby wykorzystanie podzapytań wraz z \\cyfra) a nie może ktoś podjąć próby wyjaśnienia tego. Jakkolwiek problem jest wciąż aktualny.

Ten post edytował s_w_ir 29.09.2005, 00:24:19
Go to the top of the page
+Quote Post

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: 25.08.2025 - 09:50