[ Pobierz całość w formacie PDF ]

go typu znaków (określonego podobnie jak w tabeli 38.1). Jeśli dysponujesz jakimiś do-
świadczeniami w obsłudze systemów operacyjnych wykorzystujących wiersz poleceń,
przekonasz si¹, że wyst¹pujÄ… pewne analogie pomi¹dzy znakami wieloznacznymi i me-
taznakami stosowanymi w wyrażeniach regularnych. Metaznaki umożliwiające określa-
nie cz¹stotliwoÅ›ci wyst¹powania znaków lub fragmentów wyrażeÅ„ regularnych j¹zyka
JavaScript zostały przedstawione w tabeli 38.2.
Metaznaki określające liczbę wystąpień w wyrażeniach regularnych JavaScriptu
Znak Wskazuje ostatni raz Przykład
Zero lub wi¹cej razy wskazuje Å‚aÅ„cuchy ,
lub , lecz nie
Zero lub dokładnie raz wskazuje łańcuchy lub ,
lecz nie
Jeden lub wi¹cej razy wskazuje Å‚aÅ„cuch lub ,
lecz nie
Dokładnie razy wskazuje łańcuch ,
lecz nie lub
lub wi¹cej razy wskazuje Å‚aÅ„cuchy
lub , lecz nie
Co najmniej razy, lecz co wskazuje łańcuchy
najwyżej razy oraz , lecz nie
Każdy z metaznaków przedstawionych w tabeli 38.2 odnosi si¹ do znaku podanego
w wyrażeniu regularnym bezpośrednio przed danym metaznakiem. Warto zauważyć, że
znakami tymi mogą także być metaznaki podane w tabeli 38.1. Na przykład, poniższe
wyrażenie wskazuje ciągi zawierające dwie cyfry oddzielone od siebie jedną lub kilko-
ma samogłoskami:
Ostatnią, niezwykle ważną możliwością, jaką dają nam metaznaki stosowane w wyra-
żeniach regularnych, jest okreÅ›lanie poÅ‚ożenia, w jakim musi wyst¹pować poszukiwany
łańcuch znaków. W tym przypadku określenia  położenie nie należy utożsamiać z prze-
suni¹ciem od poczÄ…tku Å‚aÅ„cucha  te informacje zwraca bowiem sam mechanizm ob-
sługi wyrażeń regularnych. W tym przypadku chodzi o określenie czy poszukiwany
Å‚aÅ„cuch znaków ma si¹ znajdować na poczÄ…tku lub na koÅ„cu wiersza (jeÅ›li ma to jakieÅ›
znaczenie) lub innego łańcucha wskazanego jako główny łańcuch do przeszukania.
Metaznaki określające położenie w wyrażeniach regularnych JavaScriptu
Znak Lokalizacja szukanego łańcucha Przykład
Na początku przeszukiwanego Wyrażenie wskazuje ,
łańcucha lub wiersza lecz nie
Na końcu przeszukiwanego łańcucha Wyrażenie wskazuje ,
lub wiersza lecz nie lub
W
Na przykład, celowe może być wskazywanie cyfr rzymskich tylko w przypadkach, gdy
zostaÅ‚y one umieszczone na samym poczÄ…tku wiersza, a nie gdzieÅ› w jego dalszej cz¹-
ści. Jeśli cyfry rzymskie są w dokumencie używane do numerowania listy, to wszystkie
jej punkty można wskazać za pomocą poniższego wyrażenia:
Powyższe wyrażenie regularne wskazuje dowolnÄ… kombinacj¹ cyfr rzymskich zakoÅ„-
czonych kropką (w wyrażeniach regularnych kropka jest znakiem specjalnym, zgodnie
z informacjami podanymi w tabeli 38.1, a zatem, aby użyć kropki jako jednego z wy-
szukiwanych znaków, należy ją poprzedzić znakiem odwrotnego ukośnika). Dodatko-
wo, cyfry rzymskie muszą być umieszczone na samym początku wiersza  przed nimi
nie mogÄ… si¹ znajdować nawet żadne odst¹py ani znaki tabulacji. A zatem, Å‚aÅ„cuch zna-
ków nie zostanie wskazany przez powyższe wyrażenie, gdyż liczba
rzymska nie znajduje si¹ na samym poczÄ…tku wiersza.
Skoro już mówimy o wierszach, to okreÅ›lmy co jest rozumiane pod tym poj¹ciem. Otóż
wiersz to ciągły łańcuch znaków zakończony znakiem nowego wiersza i (lub) powrotu ka-
retki (w zależności od używanego systemu operacyjnego). Jeśli w wielowierszowym polu
tekstowym zostanie wÅ‚Ä…czona opcja przenoszenia wyrazów do nowego wiersza, nie b¹dzie
ona miaÅ‚a wpÅ‚ywu na faktyczne miejsca, gdzie koÅ„czÄ… si¹ poszczególne wiersze tekstu.
Wyrażenia regularne zachowujÄ… zgodność z wi¹kszoÅ›ciÄ… obowiÄ…zujÄ…cych w JavaScrip-
cie reguł dotyczących zmiany kolejności wyliczania wyrażeń w przypadku grupowania
ich przy użyciu nawiasów oraz logicznego operatora . Jedna z różnic polega na tym,
że w wyrażeniach regularnych operator logiczny zapisywany jest jako pojedyncza
pionowa kreska ( ), a nie jak w j¹zyku JavaScript jako dwie pionowe kreski.
Nawiasy stosowane w wyrażeniach regularnych nie tylko służą do grupowania frag-
mentów wyrażeń i zmiany kolejności ich wyliczania. Każdy nawias umożliwia zapa-
mi¹tanie fragmentu przeszukiwanego Å‚aÅ„cucha pasujÄ…cego do fragmentu wyrażenia re-
gularnego zapisanego w danym nawiasie. Zapisywanie wskazanego fragmentu łańcucha
jest realizowane automatycznie, przy czym poszczególne łańcuchy są przechowywane
w tablicy indeksowanej liczbami, do której dost¹p ma zarówno samo wyrażenie regu-
larne, jak i skrypt (choć w obu tych przypadkach odwołania do tablicy tworzone są
w inny sposób). Korzystanie z tych zapami¹tanych fragmentów okreÅ›la si¹ mianem od-
woÅ‚aÅ„ wstecznych, gdyż wyrażenie regularne może si¹ dzi¹ki nim odwoÅ‚ać do wyników
zwróconych przez fragment zdefiniowany we wczeÅ›niejszej cz¹Å›ci wyrażenia. Te za-
pami¹tane fragmenty wyrażeÅ„ bardzo si¹ przydajÄ… podczas wykonywania operacji za-
miany, które zostanÄ… omówione w dalszej cz¹Å›ci rozdziaÅ‚u.
W j¹zyku JavaScript podczas tworzenia nawet najprostszych wyrażeÅ„ regularnych i wyko-
nywania operacji przy ich wykorzystaniu, bardzo wiele czynności jest realizowanych w spo-
sób niewidoczny dla programisty. Choć j¹zyk używany do tworzenia wyrażeÅ„ regularnych
l
przedstawiony we wczeÅ›niejszej cz¹Å›ci rozdziaÅ‚u jest bardzo ważny, aby w peÅ‚ni wyko-
rzystać możliwości, jakie dają wyrażenia regularne, ważniejszym zagadnieniem jest po-
znanie wzajemnych relacji pomi¹dzy obiektami JavaScriptu.
W pierwszej kolejności należy sobie uświadomić, że mamy do czynienia z dwoma od-
r¹bnymi elementami  obiektem wyrażenia regularnego oraz statycznym obiektem
. Oba te obiekty należą do jÄ…dra j¹zyka JavaScript i nie wchodzÄ… w skÅ‚ad modelu
obiektów dokumentu. Obiekty te współpracujÄ… ze sobÄ…, lecz majÄ… caÅ‚kowicie odr¹bne
zbiory właściwości. [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • granada.xlx.pl
  •