[ Pobierz całość w formacie PDF ]

st�pnia przecież metody oraz , które bardzo
szybko mogą określić czy podany łańcuch znaków jest cz�ścią innego łańcucha, a nawet
w jakim jego miejscu si� znajduje. Metody te można z powodzeniem zastosować w sy-
tuacjach, gdy poszukujemy ściśle określonego łańcucha znaków. Jeśli jednak należy
przeprowadzić bardziej wyszukaną operacj� (na przykład, sprawdzić czy łańcuch zna-
ków zawiera pi�ciocyfrowy kod pocztowy), to wygodne metody obiektu na nic
si� nam nie przydadzą  musielibyśmy napisać własne funkcje umożliwiające analiz�
łańcucha znaków. I tu jednak uwidacznia si� całe pi�kno wyrażeń regularnych: pozwa-
lają one na zdefiniowanie łańcucha znaków, który b�dzie używany przy wyszukiwaniu
i na podstawie podanych wskazówek jest w stanie samodzielnie i  inteligentnie okre-
ślić co odpowiada zadanym kryteriom.
Najprostsze z możliwych wyrażeń regularnych niczym si� nie różnią od łańcuchów
znaków używanych w metodzie . Taki wzorzec jest po prostu łańcu-
chem znaków, który chcemy odszukać. W j�zyku JavaScript jednym ze sposobów two-
rzenia wyrażeń regularnych jest zapisane wyrażenia pomi�dzy dwoma znakami ukośni-
ka. Na przykład, załóżmy, że dysponujemy nast�pującym łańcuchem znaków:
Zarówno powyższy, jak i inne łańcuchy znaków mogą być przeszukiwane przez skrypt,
którego zadaniem jest zamiana formalnych zwrotów grzecznościowych na określenia
bardziej kolokwialne. A zatem, jednym z zadań tego skryptu jest zast�powanie słowa
 witam słowem  cześć . Typowy algorytm wyszukiwania i zamiany, określany jako
 algorytm brutalnej siły , rozpoczyna si� od zdefiniowania prostego wzorca, który b�-
dzie używany przy wyszukiwaniu. W j�zyku JavaScript taki wzorzec (wyrażenie regu-
larne) definiuje si� poprzez zapisanie łańcucha znaków pomi�dzy dwoma znakami uko-
śnika. Osobiście, ze wzgl�du na wygod� oraz w celu zachowania przejrzystości skryptu,
zazwyczaj zapisuj� wyrażenia regularne w zmiennych, tak jak to pokazałem na poniż-
szym przykładzie:
W połączeniu z odpowiednimi metodami wyrażeń regularnych lub obiektu , po-
wyższy wzorzec umożliwi odszukanie łańcucha znaków  witam w dowolnym miejscu
przeszukiwanego łańcucha. Problem polega na tym, że ten prosty wzorzec przysparza
poważnych problemów podczas operacji wyszukiwania i zast�powania wykonywanej
w p�tli. Wzorzec ten odnajduje bowiem nie tylko słowo  witam , lecz także  zakwitam ,
 powitam i inne.
Próba napisania kolejnej procedury, która metodą brutalnej siły próbowałaby odnalezć
i zastąpić wyłącznie całe słowa, a nie ich fragmenty, mogłaby si� okazać prawdziwym
koszmarem. Nie wystarczy bowiem zmodyfikować wzorca przez dodanie przed nim lub
za nim (bądz też po obu jego stronach) znaku odst�pu, gdyż zarówno przed, jak i za wyra-
zem może si� pojawić dowolny znak przestankowy, na przykład: kropka, przecinek bądz
średnik. Na szcz�ście wyrażenia regularne udost�pniają skrócony sposób pozwalający na
W
określenie ogólnych cech, w tym także tak zwanej  granicy wyrazu . Symbolem okre-
ślającym  granice wyrazu jest (odwrotny ukośnik oraz mała litera ). Jeśli zmieni-
my definicj� wyrażenia regularnego, tak aby po obu stronach poszukiwanego wyrazu
znalazł si� symbol granicy wyrazu, to instrukcja tworząca takie wyrażenie regularne b�-
dzie mieć nast�pującą postać:
Gdy interpreter JavaScriptu użyje tego wyrażenia jako argumentu wywołania metody
obiektu realizującej operacj� wyszukiwania i zast�powania, to w rezultacie zo-
staną zmienione wyłącznie całe słowa  witam ; inne słowa, w których wyst�puje łań-
cuch znaków zostaną pomini�te.
Jeśli dopiero uczysz si� j�zyka JavaScript i nie dysponujesz żadnymi doświadczeniami
związanymi z wykorzystaniem wyrażeń regularnych w innych j�zykach programowa-
nia, to za wykorzystanie ich ogromnych możliwości b�dziesz niestety musiał sporo za-
płacić  trzeba si� powiem nauczyć j�zyka tworzenia wyrażeń regularnych, który uży-
wa tylu symboli, że wyrażenia czasami wyglądają jak zbitki bezsensownych znaków,
używane w komiksach zamiast przekleństw. Niniejszy rozdział został pomyślany jedy-
nie jako przedstawienie składni używanej w j�zyku JavaScript do tworzenia wyrażeń
regularnych, a nie jako wyczerpujący podr�cznik. Duże znaczenie ma zrozumienie spo-
sobu traktowania obiektów, którymi są wyrażenia regularne przez interpreter JavaScriptu
oraz różnic pomi�dzy tymi obiektami a statycznym obiektem . Mam nadziej�, że
przykłady zamieszczone w niniejszym rozdziale pokażą ci choć cz�ść ogromnych możli-
wości, jakie dają wyrażenia regularne. Wyczerpujące omówienie możliwości oraz tajni-
ków tworzenia wyrażeń regularnych można znalezć w książce  Wyrażenia regularne
autorstwa Jeffreya E.F. Fridla, wydanej przez wydawnictwo Helion.
Aby wyczerpująco przedstawić składni� wyrażeń regularnych, całość zagadnienia po-
dzieliłem na trzy cz�ści. Pierwsza z nich poświ�cona jest prostym wyrażeniom (których
przykłady już widziałeś). Nast�pnie zaprezentuj� wi�cej znaków specjalnych używa-
nych podczas definiowania specyfikacji łańcucha wyszukującego. Ostatnim zagadnie-
niem b�dzie użycie nawiasów, które nie tylko ułatwiają grupowanie wyrażeń w celu
zmiany kolejności ich wykonywania, lecz także pozwalają na tymczasowe przechowy-
wanie pośrednich wyników złożonych wyrażeń i wykorzystanie ich do modyfikacji łań-
cucha po jego podzieleniu według kryteriów określonych przez wyrażenie regularne.
Proste wyrażenia regularne, to wyrażenia, w których do definiowania łańcucha używa-
nego w wyszukiwaniu, nie są używane żadne znaki specjalne. A zatem, aby zamienić
każdy znak odst�pu na znak podkreślenia, można użyć prostego wzorca przedstawione-
go poniżej, który odnajduje znaki odst�pu:
l
W powyższym wyrażeniu, pomi�dzy znakami ukośnika wyznaczającymi początek
i koniec wyrażenia regularnego, został umieszczony znak odst�pu. Jednak wyrażenie [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • drakonia.opx.pl