netcoffee.pl*po godzinach - reaktywacja

Ten blog jest kontynuacją bloga dostępnego ongiś pod adresem netcoffee.pl/pogodzinach.
Artykuły, które na to zasługują są przenoszone do nowej wersji bloga. Pozostałe wkrótce znikną.

2005-06-04

Wyrażenia regularne - Jeffrey Friedl

Wyrażenia Regularne - okładkaWyrażenia regularne to bardzo potężne narzędzie - przydatne nie tylko programiście PHP ale także wielu innych języków. Obsługę WR znajdziemy w wielu językach (PHP, Perl, Java, Delphi, JavaScript), edytorach (Vim, Emacs, Html-Kit, Nisus Writer) i innych narzędziach (np. Total Commander).

WR pozwalają w prosty sposób sprawdzić format i poprawność wprowadzonych danych tekstowych, ale także wyszukiwać fragmenty tekstu. Na przykład, sprawdzenie poprawności podanego adresu bez wykorzystania WR wymagałoby conajmniej jednej pętli i instrukcji warunkowej. Dzięki WR, w PHP sprawa wygląda następująco:


<?php
if(preg_match('/^([a-z0-9_-]+)@([a-z]0-9\.)+([a-z-]{2,5})$/', $sEmail)){
echo 'Email OK';
}else{
echo 'Email błędny';
}
?>

Całość testu sprowadza się do użycia funkcji preg_match() sprawdzającej zgodność zawartości zmiennej $sEmail z wyrażeniem ^([a-z0-9_-]+)@([a-z]0-9\.)+([a-z]{2,5})$

Dodać także należy, że to sprawdzenie nie jest zbyt szczegółowe - sprowadza się jedynie do sprawdzenia, czy podany ciąg znaków zawiera znak @ (at), a przed nim znajduje się przynajmniej jedna litera (lub cyfra lub jeden ze znaków: - _) a za znakiem @ czy znajdują się grupy liter lub cyfr rozdzielone kropkami, przy czym ostatnia grupa może zawierać tylko 2 do 5 liter.

Nie będę teraz wyjaśniał znaczenia poszczególnych części tego wyrażenia. Dlaczego? Zagadnienie WR to temat nad wyraz obszerny - Jeffrey Friedl pisząc Wyrażenia Regularne (ang. Mastering Regular Expressions) potrzebował 320 stron aby opisać WR! I trzeba przyznać, że zrobił to wybitnie! Pozycja wydana nakładem wydawnictwa Helion, dostarcza gruntownej i szczegółowej wiedzy na temat wyrażeń regularnych. Co najważniejsze Friedl opisuje nie tylko składnię WR, ale także sam mechanizm, co znacznie ułatwia poznanie tego - jakże wygodnego - narzędzia.

Kolejnym bardzo istotnym atutem tej pozycji jest wybitny przekład oryginału, którego dokonał Adam Podstawczyński.