SlideShare a Scribd company logo
1 of 15
Download to read offline
IDZ DO
         PRZYK£ADOWY ROZDZIA£

                           SPIS TRE CI   Wyra¿enia regularne.
                                         Leksykon kieszonkowy
           KATALOG KSI¥¯EK
                                         Autor: Tony Stubblebine
                      KATALOG ONLINE     T³umaczenie: Piotr Rajca
                                         ISBN: 83-7361-075-8
       ZAMÓW DRUKOWANY KATALOG           Tytu³ orygina³u: Regular Expressions Pocket Reference
                                         Format: B5, stron: 128

              TWÓJ KOSZYK
                    DODAJ DO KOSZYKA     Wyra¿enia regularne s¹ niezwykle potê¿nym mechanizmem s³u¿¹cym do
                                         dopasowywania i manipulowania tekstami. Choæ s¹ one dostêpne w wielu
                                         nowoczesnych jêzykach programowania, to jednak w ka¿dym z nich posiadaj¹
         CENNIK I INFORMACJE             one nieco inne mo¿liwo ci, a subtelne ró¿nice w ich sk³adni sprawiaj¹, ¿e nie s¹
                                         one w pe³ni zgodne z wyra¿eniami stosowanymi w innych jêzykach. Wiele jêzyków
                   ZAMÓW INFORMACJE      programowania implementuje wyra¿enia regularne, jednak ¿aden z nich nie robi
                     O NOWO CIACH        tego w identyczny sposób.
                                         Ksi¹¿ka „Wyra¿enia regularne. Leksykon kieszonkowy” zawiera krótk¹ prezentacjê
                       ZAMÓW CENNIK      pojêæ zwi¹zanych z wyra¿eniami regularnymi oraz omówienia ich najczê ciej
                                         spotykanych implementacji dysponuj¹cych najwiêkszymi mo¿liwo ciami. Nie bêdziesz
                                         ju¿ musia³ rozszyfrowywaæ tajemniczych lub chaotycznych materia³ów informacyjnych!
                 CZYTELNIA               Niniejsza ksi¹¿ka zawiera tabele i porady dotycz¹ce stosowania wyra¿eñ regularnych
                                         w jêzykach Perl, Java, Python, C# (i rodowisku .NET), PHP, JavaScript, w bibliotece
          FRAGMENTY KSI¥¯EK ONLINE       PCRE oraz kilku programach (vi, awk, egrep oraz sed).
                                         Ten leksykon mo¿na potraktowaæ jako dope³nienie doskona³ej i wyczerpuj¹cej ksi¹¿ki
                                         po wiêconej wyra¿eniom regularnym — „Wyra¿enia regularne”, autorstwa Jeffreya E. F.
                                         Friedla. Dziêki niemu bêdziesz móg³ szybko okre liæ sk³adniê oraz szczególne cechy
                                         wyra¿eñ regularnych w dowolnym u¿ywanym jêzyku programowania.




Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści


O książce ...................................................................................5
Przedstawienie wyrażeń regularnych
oraz zagadnień dopasowywania wzorców ........................7
     Metaznaki, tryby oraz konstrukcje........................................................10
     Reprezentacja znaków.............................................................................10

Perl 5.8 .....................................................................................22
     Obsługiwane metaznaki..........................................................................22
     Operatory wyrażeń regularnych ...........................................................27
     Obsługa Unicode......................................................................................30
     Przykłady ..................................................................................................31
     Inne źródła informacji .............................................................................32

Java (java.util.regex) .............................................................33
     Obsługiwane metaznaki..........................................................................33
     Klasy i interfejsy związane z wykorzystaniem
       wyrażeń regularnych ...........................................................................38
     Obsługa Unicode......................................................................................44
     Przykłady ..................................................................................................45
     Inne źródła informacji .............................................................................47

.NET i C# .................................................................................48
     Obsługiwane metaznaki..........................................................................48
     Klasy i interfejsy związane z wykorzystaniem
       wyrażeń regularnych ...........................................................................53
     Obsługa Unicode......................................................................................59
     Przykłady ..................................................................................................59
     Inne źródła informacji .............................................................................62

Python......................................................................................62
     Obsługiwane metaznaki..........................................................................62
     Obiekty i funkcje modułu re ..................................................................66


Spis treści                                                                                                      3
Obsługa Unicode......................................................................................71
     Przykłady ..................................................................................................72
     Inne źródła informacji .............................................................................73

Biblioteka PCRE....................................................................73
     Obsługiwane metaznaki..........................................................................79
     PCRE API ..................................................................................................79
     Obsługa Unicode......................................................................................83
     Przykłady ..................................................................................................84
     Inne źródła informacji .............................................................................88

PHP ..........................................................................................88
     Obsługiwane metaznaki..........................................................................88
     Funkcje obsługi wyrażeń regularnych..................................................93
     Przykłady ..................................................................................................96
     Inne źródła informacji .............................................................................98

Edytor vi..................................................................................98
     Obsługiwane metaznaki..........................................................................98
     Dopasowywanie wzorców ...................................................................102
     Przykłady ................................................................................................103
     Inne źródła informacji ...........................................................................104

JavaScript..............................................................................104
     Obsługiwane metaznaki........................................................................104
     Metody i obiekty związane z wykorzystaniem
       wyrażeń regularnych .........................................................................107
     Przykłady ................................................................................................111
     Inne źródła informacji ...........................................................................113

Programy obsługiwane z wiersza poleceń......................113
     Obsługiwane metaznaki........................................................................113
     Inne źródła informacji ...........................................................................119

Skorowidz .............................................................................121




4                                               Wyrażenia regularne. Leksykon kieszonkowy
• Wyrażenia regularne, książka Jeffreya E. F. Friedla (wydaw-
        nictwo Helion) szczegółowo opisuje wyrażenia regularne
        używane w języku Perl (strony 203 – 302).
      • perlre — to jeden z działów dokumentacji języka Perl, do-
        stępnych w większości jego dystrybucji.


Java (java.util.regex)
W Java 1.4 obsługa wyrażeń regularnych została zaimplemen-
towana w formie pakietu LCXCWVKNTGIGZ, opracowanego przez
firmę Sun. Choć istnieją także inne pakiety obsługujące wyrażenia
regularne, przeznaczone dla wcześniejszych wersji języka, to jed-
nak standardem stanie się zapewne pakiet firmy Sun. W pakiecie
tym wykorzystywany jest tradycyjny mechanizm dopasowywania
NFA. Wyjaśnienie zasad działania tego mechanizmu można
znaleźć w rozdziale pod tytułem „Przedstawienie wyrażeń regu-
larnych oraz zagadnień dopasowywania wzorców”.


Obsługiwane metaznaki
Pakiet LCXCWVKNTGIGZ obsługuje metaznaki oraz metasekwencje
przedstawione w tabelach od 10. do 14. Bardziej szczegółowe
opisy poszczególnych metaznaków można znaleźć w części zaty-
tułowanej „Metaznaki, tryby oraz konstrukcje”.

Tabela 10. Reprezentacje znaków
 Sekwencja           Znaczenie
 C                  Alarm (dzwonek)
 D                  Znak cofnięcia; Z, obsługiwany wyłącznie w klasie znaków
 G                  Znak ESC, Z$
 P                  Znak nowego wiersza, Z#



Java (java.util.regex)                                                            33
T                 Znak powrotu karetki, Z

Tabela 10. Reprezentacje znaków — ciąg dalszy
Sekwencja          Znaczenie
H                 Znak wysunięcia kartki, Z%
V                 Znak tabulacji poziomej, Z
ÎUGOMQYC         Znak reprezentowany przez jedno-, dwu- lub trzycyfrową liczbę
                   ósemkową
ZUGUPCUVMQYC Znak reprezentowany przez jedno- lub dwucyfrową liczbę
               szesnastkową
WUGUPCUVMQYC Znak reprezentowany przez czterocyfrowy kod szesnastkowy
               Unicode
EPCM         Znak sterujący o podanej nazwie

Tabela 11. Klasy znaków oraz skrótowe zapisy klas
Klasa              Znaczenie

=?              Pojedynczy znak podany lub zawierający się w określonym
                   zakresie
=@?             Pojedynczy znak, który nie został podany lub nie zawiera się
                   w określonym zakresie
                  Dowolny znak za wyjątkiem znaku nowego wiersza
                   (chyba e stosowany jest tryb 16#..)
Y                 Znak mogący tworzyć wyrazy; =C#A?
9                 Znak, który nie mo e tworzyć wyrazów; =@C#A?
F                 Cyfra; =?
                 Dowolny znak nie będący cyfrą; =@?
U                 odstęp; = VPHTZ$?
5                 Dowolny znak nie będący odstępem; =@ VPHTZ$?
R]Y C EKYQ è_ Znak nale ący do określonej klasy znaków POSIX bądź
               właściwości lub bloku Unicode
2]Y C EKYQ è_ Znak, który nie nale y do określonej klasy znaków POSIX
               ani właściwości lub bloku Unicode



34                                Wyrażenia regularne. Leksykon kieszonkowy
Tabela 12. Punkty zakotwiczenia i warunki zerowej długości
 Sekwencja     Znaczenie
 @             Początek łańcucha znaków lub, w trybie wielowierszowym (/7.6+.+0'),
               miejsce poło one bezpośrednio za znakiem nowego wiersza
 #            Początek łańcucha znaków, niezale nie od u ywanego trybu
               dopasowywania
               Koniec łańcucha znaków lub, w trybie wielowierszowym (/7.6+.+0'),
               miejsce poło one bezpośrednio przed dowolnym znakiem nowego wiersza
             Koniec łańcucha znaków lub miejsce poło one przed znakiem nowego
               wiersza kończącym wejściowy łańcuch znaków, niezale nie od u ywanego
               trybu dopasowywania
             Koniec łańcucha znaków, niezale nie od u ywanego trybu dopasowywania
 D            Granica słowa
 $            Dowolne miejsce, które nie jest granicą słowa
 )            Początek aktualnego wyszukiwania
 
!       Pozytywne przewidywanie
 
!        Negatywne przewidywanie
 
       Pozytywne przewidywanie wsteczne
 
        Negatywne przewidywanie wsteczne

Tabela 13. Komentarze i modyfikatory trybu
 Modyfikator               Znak     Znaczenie
 (sekwencja)               trybu
 2CVVGTP70+:A             F        Traktuje znak P jako jedyny znak końca wiersza
 .+0'5
 2CVVGTP16#..            U        Kropka () odpowiada dowolnemu znakowi, w tym
                                    tak e znakowi zakończenia wiersza
 2CVVGTP/7.6+.+0'         O        Metaznaki @ oraz pasują do miejsc poło onych
                                    tu obok osadzonych znaków końca wiersza
 2CVVGTP%1//'065          Z        Ignoruje odstępy i pozwala na umieszczanie
                                    komentarzy w wyra eniu regularnym



Java (java.util.regex)                                                            35
2CVVGTP%#5'A             K        Podczas dopasowywania nie będzie uwzględniana
+05'05+6+8'                        wielkość liter nale ących do kodu ASCII

Tabela 13. Komentarze i modyfikatory trybu — ciąg dalszy
Modyfikator               Znak     Znaczenie
(sekwencja)               trybu

2CVVGTP70+%1'A          W        Podczas dopasowywania nie będzie uwzględniana
%#5'                               wielkość liter Unicode
2CVVGTP%#010A'3                   Tryb „kanonicznej równowa ności” Unicode,
                                   w którym znak oraz sekwencja składająca się
                                   ze znaku bazowego i znaków łączących o takiej
                                   samej reprezentacji wizualnej są traktowane jako
                                   identyczne

!VT[D                            Włącza podane tryby (KFOUWZ) w dalszej części
                                   podwyra enia

!VT[D                           Wyłącza podane tryby (KFOUWZ) w dalszej części
                                   podwyra enia

!VT[D.                        Włącza podane tryby (KFOUWZ) w wyra eniu
                                   podanym pomiędzy dwukropkiem i nawiasem
                                   zamykającym

!VT[D                       Wyłącza podane tryby (KFOUWZ) w wyra eniu
                                   podanym pomiędzy dwukropkiem i nawiasem
                                   zamykającym
                                W trybie Z sprawia, e wszystkie znaki do
                                   końca wiersza będą traktowane jako komentarz

Tabela 14. Grupowanie, przechwytywanie, konstrukcje warunkowe
i sterowanie
Sekwencja     Znaczenie

         Grupuje podwzorce, przechwytuje pasujące do nich łańcuchy znaków
              i zapamiętuje je w metaznakach , , … oraz , , …
P            Zawiera tekst odpowiadający P-tej grupie przechwytującej
 P            W łańcuchu zamiennika zawiera tekst dopasowany do P-tej grupy
              przechwytującej



36                                 Wyrażenia regularne. Leksykon kieszonkowy
!      Grupuje podwzorce, lecz nie powoduje przechwycenia i zapamiętania
              pasujących do nich łańcuchów znaków
 
!       Nie pozwala na powtórne wykorzystanie tekstu pasującego do podwzorca

Tabela 14. Grupowanie, przechwytywanie, konstrukcje warunkowe
i sterowanie — ciąg dalszy
 Sekwencja    Znaczenie
 ^      Sprawdza alternatywne podwzorce
Dopasowuje podwzorzec 0 lub więcej razy
 
            Dopasowuje podwzorzec 1 lub więcej razy
 !            Dopasowuje podwzorzec 1 lub 0 razy
 ]P_          Dopasowuje podwzorzec dokładnie P razy
 ]P_         Dopasowuje podwzorzec co najmniej P razy
 ]Z[_        Dopasowuje podwzorzec co najmniej Z razy, jednak nie więcej ni [ razy
!           Dopasowuje 0 lub więcej powtórzeń podwzorca, przy czym wybierana
              jest najmniejsza mo liwa liczba powtórzeń
 
!           Dopasowuje 1 lub więcej powtórzeń podwzorca, przy czym wybierana
              jest najmniejsza mo liwa liczba powtórzeń
 !!           Dopasowuje 0 lub 1 powtórzenie podwzorca, przy czym wybierana jest
              najmniejsza mo liwa liczba powtórzeń
 ]P_!        Dopasowuje podwzorzec co najmniej P razy, przy czym wybierana jest
              najmniejsza mo liwa liczba powtórzeń
 ]Z[_!       Dopasowuje podwzorzec co najmniej Z razy, jednak nie więcej ni [
              razy, przy czym wybierana jest najmniejsza mo liwa liczba powtórzeń
Dopasowuje 0 lub więcej powtórzeń podwzorca, przy czym nigdy nie
              jest realizowane nawracanie
 

           Dopasowuje 1 lub więcej powtórzeń podwzorca, przy czym nigdy nie
              jest realizowane nawracanie
 !
           Dopasowuje 0 lub 1 powtórzenie podwzorca, przy czym nigdy nie jest
              realizowane nawracanie
 ]P_
         Dopasowuje podwzorzec co najmniej P razy, przy czym nigdy nie jest
              realizowane nawracanie
 ]P_
        Dopasowuje podwzorzec co najmniej P razy, przy czym nigdy nie jest
              realizowane nawracanie


Java (java.util.regex)                                                              37
]Z[_
     Dopasowuje podwzorzec co najmniej Z razy, jednak nie więcej ni [
           razy, przy czym nigdy nie jest realizowane nawracanie



Klasy i interfejsy związane
z wykorzystaniem wyrażeń regularnych
W języku Java 1.4 wprowadzono dwie podstawowe klasy zwią-
zane z obsługą wyrażeń regularnych — LCXCWVKNTGIGZ2CVVGTP
oraz LCXCWVKNTGIGZ/CVEJGT, jeden wyjątek — LCXCWVKNTGIGZ
2CVVGTP5[PVCZ'ZEGRVKQP oraz nowy interfejs — %JCT5GSWGPEG. Ponadto
firma Sun zaktualizowała klasę 5VTKPI — aktualnie implementuje
ona interfejs %JCT5GSWGPEG i udostępnia podstawowe metody zwią-
zane z wykorzystaniem wyrażeń regularnych i dopasowywaniem
wzorców. Obiekty 2CVVGTP to skompilowane wyrażenia regularne,
które można dopasowywać do wielu różnych łańcuchów znaków.
Z kolei obiekt /CVEJGT to wynik dopasowania jednego obiektu
2CVVGTP do konkretnego łańcucha znaków (lub dowolnego obiektu
implementującego interfejs %JCT5GSWGPEG).
Znaki odwrotnego ukośnika umieszczone w literałach znakowych
definiujących wyrażenie regularne należy odpowiednio oznaczać
(dodatkowym znakiem odwrotnego ukośnika). A zatem P (znak
nowego wiersza), umieszczany w literałach łańcuchowych Javy,
które mają być użyte jako wyrażenie regularne, należy zapisać
w postaci P.


java.lang.String

Opis
Nowe metody służące do dopasowywania wyrażeń regularnych.




38                              Wyrażenia regularne. Leksykon kieszonkowy
Metody
DQQNGCP OCVEJGU
5VTKPI Y[TCGPKG4GIWNCTPG
      Zwraca wartość VTWG, jeśli podane Y[TCGPKG4GIWNCTPG odpo-
      wiada całemu łańcuchowi znaków.
5VTKPI=? URNKV
5VTKPI Y[TCGPKG4GIWNCTPG
      Zwraca tablicę łańcuchów znaków, oddzielających od sie-
      bie kolejne fragmenty łańcucha odpowiadające podanemu
      Y[TCGPKW4GIWNCTPGOW.

5VTKPI=? URNKV
5VTKPI Y[TCGPKG4GIWNCTPG KPV NKOKV
      Zwraca tablicę łańcuchów znaków, oddzielających od siebie
      pierwsze NKOKV fragmentów łańcucha odpowiadających
      podanemu Y[TCGPKW4GIWNCTPGOW.
5VTKPI TGRNCEG(KTUV
5VTKPI Y[TCGPKG4GIWNCTPG 5VTKPI COKGPPKM
      Zastępuje podłańcuch odpowiadający podanemu Y[TCGPKW
      4GIWNCTPGOW COKGPPKMKGO.

5VTKPI TGRNCEG#NN
5VTKPI Y[TCGPKG4GIWNCTPG 5VTKPI COKGPPKM
      Zastępuje wszystkie podłańcuchy odpowiadające podanemu
      Y[TCGPKW4GIWNCTPGOW COKGPPKMKGO.


java.util.regex.Pattern                             extends 1DLGEV
                                            implements 5GTKCNKCDNG

Opis
Reprezentuje wzorzec wyrażenia regularnego.

Metody
UVCVKE 2CVVGTP EQORKNG
5VTKPI Y[TCGPKG4GIWNCTPG
      Tworzy nowy obiekt 2CVVGTP na podstawie podanego Y[TC
      GPKC4GIWNCTPGIQ.




Java (java.util.regex)                                           39
UVCVKE 2CVVGTP EQORKNG
5VTKPI Y[TCGPKG4GIWNCTPG KPV HNCIK
      Tworzy nowy obiekt 2CVVGTP na podstawie podanego Y[TC
      GPKC4GIWNCTPGIQ i argumentu HNCIK, którego wartość sta-
     nowią modyfikatory trybów połączone ze sobą bitowym
     operatorem 14.
KPV HNCIU

     Zwraca modyfikatory trybu danego obiektu 2CVVGTP.
/CVEJGT OCVEJGT
%JCT5GSWGPEG NCPEWEJ9GLUEKQY[
      Tworzy obiekt /CVEJGT, który umożliwi dopasowanie tego
      (VJKU) obiektu 2CVVGTP do podanego NCPEWEJC9GLUEKQYGIQ.
UVCVKE DQQNGCP OCVEJGU
5VTKPI Y[TCGPKG4GIWNCTPG %JCT5GSWGPEG
  NCPEWEJ9GLUEKQY[
      Zwraca wartość VTWG, jeśli podane Y[TCGPKG4GIWNCTPG od-
      powiada całemu łańcuchowi przekazanemu jako NCPEW
      EJ9GLUEKQY[.

5VTKPI RCVVGTP

     Zwraca wyrażenie regularne użyte do utworzenia danego
     obiektu 2CVVGTP.
5VTKPI=? URNKV
%JCT5GSWGPEG NCPEWEJ9GLUEKQY[
     Zwraca tablicę łańcuchów znaków, które rozdzielają w poda-
     nym NCPEWEJW9GLUEKQY[O kolejne wystąpienia wyrażenia regu-
     larnego reprezentowanego przez dany obiekt 2CVVGTP.
5VTKPI=? URNKV
%JCT5GSWGPEG NCPEWEJ9GLUEKQY[ KPV NKOKV
     Zwraca tablicę łańcuchów znaków, które rozdzielają w poda-
     nym NCPEWEJW9GLUEKQY[O NKOKV wystąpień wyrażenia regu-
     larnego reprezentowanego przez dany obiekt 2CVVGTP.




40                          Wyrażenia regularne. Leksykon kieszonkowy
java.util.regex.Matcher                            extends 1DLGEV

Opis
Reprezentuje mechanizm dopasowujący wyrażenia regularne oraz
wyniki dopasowania wyrażenia.

Metody
/CVEJGT CRRGPF4GRNCEGOGPV
5VTKPI$WHHGT UD 5VTKPI COKGPPKM
      Dołącza podłańcuch poprzedzający dopasowanie oraz COKGP
      PKM do bufora znakowego, określonego przy użyciu argu-
      mentu UD.
5VTKPI$WHHGT CRRGPF6CKN
5VTKPI$WHHGT UD
      Dołącza podłańcuch umieszczony za dopasowaniem do bu-
      fora znakowego, określonego przy użyciu argumentu UD.
KPV GPF

      Indeks pierwszego znaku za końcem dopasowania.
KPV GPF
KPV ITWRC
      Indeks pierwszego znaku znajdującego się za przechwy-
      coną ITWRæ.
DQQNGCP HKPF

      Odnajduje kolejny fragment łańcucha pasujący do wyrażenia
      regularnego.
DQQNGCP HKPF
KPV RQECVGM
      Odnajduje kolejny fragment łańcucha pasujący do wyrażenia
      regularnego, położony za znakiem o indeksie określonym
      jako RQECVGM.
5VTKPI ITQWR

      Tekst odpowiadający wyrażeniu regularnemu reprezento-
      wanemu przez dany obiekt 2CVVGTP.




Java (java.util.regex)                                         41

More Related Content

Viewers also liked

Head First Servlets & JSP. Edycja polska
Head First Servlets & JSP. Edycja polskaHead First Servlets & JSP. Edycja polska
Head First Servlets & JSP. Edycja polskaWydawnictwo Helion
 
Delphi 2005. Kompendium programisty
Delphi 2005. Kompendium programistyDelphi 2005. Kompendium programisty
Delphi 2005. Kompendium programistyWydawnictwo Helion
 
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugie
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugieRozbudowa i naprawa komputera. Kompendium. Wydanie drugie
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugieWydawnictwo Helion
 
Programowanie w języku C. FAQ
Programowanie w języku C. FAQProgramowanie w języku C. FAQ
Programowanie w języku C. FAQWydawnictwo Helion
 
Wyciśnij maksimum z Twojego komputera
Wyciśnij maksimum z Twojego komputeraWyciśnij maksimum z Twojego komputera
Wyciśnij maksimum z Twojego komputeraWydawnictwo Helion
 
Wireless Hacking. Edycja polska
Wireless Hacking. Edycja polskaWireless Hacking. Edycja polska
Wireless Hacking. Edycja polskaWydawnictwo Helion
 

Viewers also liked (10)

Head First Servlets & JSP. Edycja polska
Head First Servlets & JSP. Edycja polskaHead First Servlets & JSP. Edycja polska
Head First Servlets & JSP. Edycja polska
 
Delphi 2005. Kompendium programisty
Delphi 2005. Kompendium programistyDelphi 2005. Kompendium programisty
Delphi 2005. Kompendium programisty
 
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugie
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugieRozbudowa i naprawa komputera. Kompendium. Wydanie drugie
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugie
 
Programowanie w języku C. FAQ
Programowanie w języku C. FAQProgramowanie w języku C. FAQ
Programowanie w języku C. FAQ
 
Wyciśnij maksimum z Twojego komputera
Wyciśnij maksimum z Twojego komputeraWyciśnij maksimum z Twojego komputera
Wyciśnij maksimum z Twojego komputera
 
C. Leksykon kieszonkowy
C. Leksykon kieszonkowyC. Leksykon kieszonkowy
C. Leksykon kieszonkowy
 
Flash MX. Programowanie
Flash MX. ProgramowanieFlash MX. Programowanie
Flash MX. Programowanie
 
Wireless Hacking. Edycja polska
Wireless Hacking. Edycja polskaWireless Hacking. Edycja polska
Wireless Hacking. Edycja polska
 
Access. Programowanie w VBA
Access. Programowanie w VBAAccess. Programowanie w VBA
Access. Programowanie w VBA
 
UML dla każdego
UML dla każdegoUML dla każdego
UML dla każdego
 

Similar to Wyrażenia regularne. Leksykon kieszonkowy

Asembler. Sztuka programowania
Asembler. Sztuka programowaniaAsembler. Sztuka programowania
Asembler. Sztuka programowaniaWydawnictwo Helion
 
Oracle8. Programowanie w języku PL/SQL
Oracle8. Programowanie w języku PL/SQLOracle8. Programowanie w języku PL/SQL
Oracle8. Programowanie w języku PL/SQLWydawnictwo Helion
 
Programowanie skryptów powłoki
Programowanie skryptów powłokiProgramowanie skryptów powłoki
Programowanie skryptów powłokiWydawnictwo Helion
 
Język C. Wskaźniki. Vademecum profesjonalisty
Język C. Wskaźniki. Vademecum profesjonalistyJęzyk C. Wskaźniki. Vademecum profesjonalisty
Język C. Wskaźniki. Vademecum profesjonalistyWydawnictwo Helion
 
Algorytmy numeryczne w Delphi. Księga eksperta
Algorytmy numeryczne w Delphi. Księga ekspertaAlgorytmy numeryczne w Delphi. Księga eksperta
Algorytmy numeryczne w Delphi. Księga ekspertaWydawnictwo Helion
 
Photoshop 7. Leksykon kieszonkowy
Photoshop 7. Leksykon kieszonkowyPhotoshop 7. Leksykon kieszonkowy
Photoshop 7. Leksykon kieszonkowyWydawnictwo Helion
 
Angielski z komputerem. Programy, słowniki komputerowe i strony WWW
Angielski z komputerem. Programy, słowniki komputerowe i strony WWWAngielski z komputerem. Programy, słowniki komputerowe i strony WWW
Angielski z komputerem. Programy, słowniki komputerowe i strony WWWWydawnictwo Helion
 
ActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedycznyActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedycznyWydawnictwo Helion
 

Similar to Wyrażenia regularne. Leksykon kieszonkowy (20)

Perl. Receptury. Wydanie II
Perl. Receptury. Wydanie IIPerl. Receptury. Wydanie II
Perl. Receptury. Wydanie II
 
Algorytmy w Perlu
Algorytmy w PerluAlgorytmy w Perlu
Algorytmy w Perlu
 
Asembler. Sztuka programowania
Asembler. Sztuka programowaniaAsembler. Sztuka programowania
Asembler. Sztuka programowania
 
Word. Leksykon kieszonkowy
Word. Leksykon kieszonkowyWord. Leksykon kieszonkowy
Word. Leksykon kieszonkowy
 
Praktyczny kurs asemblera
Praktyczny kurs asembleraPraktyczny kurs asemblera
Praktyczny kurs asemblera
 
Java. Rozmówki
Java. RozmówkiJava. Rozmówki
Java. Rozmówki
 
Oracle8. Programowanie w języku PL/SQL
Oracle8. Programowanie w języku PL/SQLOracle8. Programowanie w języku PL/SQL
Oracle8. Programowanie w języku PL/SQL
 
C#. Leksykon kieszonkowy
C#. Leksykon kieszonkowyC#. Leksykon kieszonkowy
C#. Leksykon kieszonkowy
 
Programowanie skryptów powłoki
Programowanie skryptów powłokiProgramowanie skryptów powłoki
Programowanie skryptów powłoki
 
Prolog. Programowanie
Prolog. ProgramowanieProlog. Programowanie
Prolog. Programowanie
 
Java 2. Podstawy
Java 2. PodstawyJava 2. Podstawy
Java 2. Podstawy
 
Język C. Wskaźniki. Vademecum profesjonalisty
Język C. Wskaźniki. Vademecum profesjonalistyJęzyk C. Wskaźniki. Vademecum profesjonalisty
Język C. Wskaźniki. Vademecum profesjonalisty
 
Perl 6. Podstawy
Perl 6. PodstawyPerl 6. Podstawy
Perl 6. Podstawy
 
ABC Delphi 7
ABC Delphi 7ABC Delphi 7
ABC Delphi 7
 
PHP. Programowanie
PHP. ProgramowaniePHP. Programowanie
PHP. Programowanie
 
Delphi. Szybki start
Delphi. Szybki startDelphi. Szybki start
Delphi. Szybki start
 
Algorytmy numeryczne w Delphi. Księga eksperta
Algorytmy numeryczne w Delphi. Księga ekspertaAlgorytmy numeryczne w Delphi. Księga eksperta
Algorytmy numeryczne w Delphi. Księga eksperta
 
Photoshop 7. Leksykon kieszonkowy
Photoshop 7. Leksykon kieszonkowyPhotoshop 7. Leksykon kieszonkowy
Photoshop 7. Leksykon kieszonkowy
 
Angielski z komputerem. Programy, słowniki komputerowe i strony WWW
Angielski z komputerem. Programy, słowniki komputerowe i strony WWWAngielski z komputerem. Programy, słowniki komputerowe i strony WWW
Angielski z komputerem. Programy, słowniki komputerowe i strony WWW
 
ActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedycznyActionScript. Przewodnik encyklopedyczny
ActionScript. Przewodnik encyklopedyczny
 

More from Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyWydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikWydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuWydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIWydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningWydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykWydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
 

More from Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieE-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 

Wyrażenia regularne. Leksykon kieszonkowy

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TRE CI Wyra¿enia regularne. Leksykon kieszonkowy KATALOG KSI¥¯EK Autor: Tony Stubblebine KATALOG ONLINE T³umaczenie: Piotr Rajca ISBN: 83-7361-075-8 ZAMÓW DRUKOWANY KATALOG Tytu³ orygina³u: Regular Expressions Pocket Reference Format: B5, stron: 128 TWÓJ KOSZYK DODAJ DO KOSZYKA Wyra¿enia regularne s¹ niezwykle potê¿nym mechanizmem s³u¿¹cym do dopasowywania i manipulowania tekstami. Choæ s¹ one dostêpne w wielu nowoczesnych jêzykach programowania, to jednak w ka¿dym z nich posiadaj¹ CENNIK I INFORMACJE one nieco inne mo¿liwo ci, a subtelne ró¿nice w ich sk³adni sprawiaj¹, ¿e nie s¹ one w pe³ni zgodne z wyra¿eniami stosowanymi w innych jêzykach. Wiele jêzyków ZAMÓW INFORMACJE programowania implementuje wyra¿enia regularne, jednak ¿aden z nich nie robi O NOWO CIACH tego w identyczny sposób. Ksi¹¿ka „Wyra¿enia regularne. Leksykon kieszonkowy” zawiera krótk¹ prezentacjê ZAMÓW CENNIK pojêæ zwi¹zanych z wyra¿eniami regularnymi oraz omówienia ich najczê ciej spotykanych implementacji dysponuj¹cych najwiêkszymi mo¿liwo ciami. Nie bêdziesz ju¿ musia³ rozszyfrowywaæ tajemniczych lub chaotycznych materia³ów informacyjnych! CZYTELNIA Niniejsza ksi¹¿ka zawiera tabele i porady dotycz¹ce stosowania wyra¿eñ regularnych w jêzykach Perl, Java, Python, C# (i rodowisku .NET), PHP, JavaScript, w bibliotece FRAGMENTY KSI¥¯EK ONLINE PCRE oraz kilku programach (vi, awk, egrep oraz sed). Ten leksykon mo¿na potraktowaæ jako dope³nienie doskona³ej i wyczerpuj¹cej ksi¹¿ki po wiêconej wyra¿eniom regularnym — „Wyra¿enia regularne”, autorstwa Jeffreya E. F. Friedla. Dziêki niemu bêdziesz móg³ szybko okre liæ sk³adniê oraz szczególne cechy wyra¿eñ regularnych w dowolnym u¿ywanym jêzyku programowania. Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl
  • 2. Spis treści O książce ...................................................................................5 Przedstawienie wyrażeń regularnych oraz zagadnień dopasowywania wzorców ........................7 Metaznaki, tryby oraz konstrukcje........................................................10 Reprezentacja znaków.............................................................................10 Perl 5.8 .....................................................................................22 Obsługiwane metaznaki..........................................................................22 Operatory wyrażeń regularnych ...........................................................27 Obsługa Unicode......................................................................................30 Przykłady ..................................................................................................31 Inne źródła informacji .............................................................................32 Java (java.util.regex) .............................................................33 Obsługiwane metaznaki..........................................................................33 Klasy i interfejsy związane z wykorzystaniem wyrażeń regularnych ...........................................................................38 Obsługa Unicode......................................................................................44 Przykłady ..................................................................................................45 Inne źródła informacji .............................................................................47 .NET i C# .................................................................................48 Obsługiwane metaznaki..........................................................................48 Klasy i interfejsy związane z wykorzystaniem wyrażeń regularnych ...........................................................................53 Obsługa Unicode......................................................................................59 Przykłady ..................................................................................................59 Inne źródła informacji .............................................................................62 Python......................................................................................62 Obsługiwane metaznaki..........................................................................62 Obiekty i funkcje modułu re ..................................................................66 Spis treści 3
  • 3. Obsługa Unicode......................................................................................71 Przykłady ..................................................................................................72 Inne źródła informacji .............................................................................73 Biblioteka PCRE....................................................................73 Obsługiwane metaznaki..........................................................................79 PCRE API ..................................................................................................79 Obsługa Unicode......................................................................................83 Przykłady ..................................................................................................84 Inne źródła informacji .............................................................................88 PHP ..........................................................................................88 Obsługiwane metaznaki..........................................................................88 Funkcje obsługi wyrażeń regularnych..................................................93 Przykłady ..................................................................................................96 Inne źródła informacji .............................................................................98 Edytor vi..................................................................................98 Obsługiwane metaznaki..........................................................................98 Dopasowywanie wzorców ...................................................................102 Przykłady ................................................................................................103 Inne źródła informacji ...........................................................................104 JavaScript..............................................................................104 Obsługiwane metaznaki........................................................................104 Metody i obiekty związane z wykorzystaniem wyrażeń regularnych .........................................................................107 Przykłady ................................................................................................111 Inne źródła informacji ...........................................................................113 Programy obsługiwane z wiersza poleceń......................113 Obsługiwane metaznaki........................................................................113 Inne źródła informacji ...........................................................................119 Skorowidz .............................................................................121 4 Wyrażenia regularne. Leksykon kieszonkowy
  • 4. • Wyrażenia regularne, książka Jeffreya E. F. Friedla (wydaw- nictwo Helion) szczegółowo opisuje wyrażenia regularne używane w języku Perl (strony 203 – 302). • perlre — to jeden z działów dokumentacji języka Perl, do- stępnych w większości jego dystrybucji. Java (java.util.regex) W Java 1.4 obsługa wyrażeń regularnych została zaimplemen- towana w formie pakietu LCXCWVKNTGIGZ, opracowanego przez firmę Sun. Choć istnieją także inne pakiety obsługujące wyrażenia regularne, przeznaczone dla wcześniejszych wersji języka, to jed- nak standardem stanie się zapewne pakiet firmy Sun. W pakiecie tym wykorzystywany jest tradycyjny mechanizm dopasowywania NFA. Wyjaśnienie zasad działania tego mechanizmu można znaleźć w rozdziale pod tytułem „Przedstawienie wyrażeń regu- larnych oraz zagadnień dopasowywania wzorców”. Obsługiwane metaznaki Pakiet LCXCWVKNTGIGZ obsługuje metaznaki oraz metasekwencje przedstawione w tabelach od 10. do 14. Bardziej szczegółowe opisy poszczególnych metaznaków można znaleźć w części zaty- tułowanej „Metaznaki, tryby oraz konstrukcje”. Tabela 10. Reprezentacje znaków Sekwencja Znaczenie C Alarm (dzwonek) D Znak cofnięcia; Z, obsługiwany wyłącznie w klasie znaków G Znak ESC, Z$ P Znak nowego wiersza, Z# Java (java.util.regex) 33
  • 5. T Znak powrotu karetki, Z Tabela 10. Reprezentacje znaków — ciąg dalszy Sekwencja Znaczenie H Znak wysunięcia kartki, Z% V Znak tabulacji poziomej, Z ÎUGOMQYC Znak reprezentowany przez jedno-, dwu- lub trzycyfrową liczbę ósemkową ZUGUPCUVMQYC Znak reprezentowany przez jedno- lub dwucyfrową liczbę szesnastkową WUGUPCUVMQYC Znak reprezentowany przez czterocyfrowy kod szesnastkowy Unicode EPCM Znak sterujący o podanej nazwie Tabela 11. Klasy znaków oraz skrótowe zapisy klas Klasa Znaczenie =? Pojedynczy znak podany lub zawierający się w określonym zakresie =@? Pojedynczy znak, który nie został podany lub nie zawiera się w określonym zakresie Dowolny znak za wyjątkiem znaku nowego wiersza (chyba e stosowany jest tryb 16#..) Y Znak mogący tworzyć wyrazy; =C#A? 9 Znak, który nie mo e tworzyć wyrazów; =@C#A? F Cyfra; =? Dowolny znak nie będący cyfrą; =@? U odstęp; = VPHTZ$? 5 Dowolny znak nie będący odstępem; =@ VPHTZ$? R]Y C EKYQ è_ Znak nale ący do określonej klasy znaków POSIX bądź właściwości lub bloku Unicode 2]Y C EKYQ è_ Znak, który nie nale y do określonej klasy znaków POSIX ani właściwości lub bloku Unicode 34 Wyrażenia regularne. Leksykon kieszonkowy
  • 6. Tabela 12. Punkty zakotwiczenia i warunki zerowej długości Sekwencja Znaczenie @ Początek łańcucha znaków lub, w trybie wielowierszowym (/7.6+.+0'), miejsce poło one bezpośrednio za znakiem nowego wiersza # Początek łańcucha znaków, niezale nie od u ywanego trybu dopasowywania Koniec łańcucha znaków lub, w trybie wielowierszowym (/7.6+.+0'), miejsce poło one bezpośrednio przed dowolnym znakiem nowego wiersza Koniec łańcucha znaków lub miejsce poło one przed znakiem nowego wiersza kończącym wejściowy łańcuch znaków, niezale nie od u ywanego trybu dopasowywania Koniec łańcucha znaków, niezale nie od u ywanego trybu dopasowywania D Granica słowa $ Dowolne miejsce, które nie jest granicą słowa ) Początek aktualnego wyszukiwania ! Pozytywne przewidywanie ! Negatywne przewidywanie Pozytywne przewidywanie wsteczne Negatywne przewidywanie wsteczne Tabela 13. Komentarze i modyfikatory trybu Modyfikator Znak Znaczenie (sekwencja) trybu 2CVVGTP70+:A F Traktuje znak P jako jedyny znak końca wiersza .+0'5 2CVVGTP16#.. U Kropka () odpowiada dowolnemu znakowi, w tym tak e znakowi zakończenia wiersza 2CVVGTP/7.6+.+0' O Metaznaki @ oraz pasują do miejsc poło onych tu obok osadzonych znaków końca wiersza 2CVVGTP%1//'065 Z Ignoruje odstępy i pozwala na umieszczanie komentarzy w wyra eniu regularnym Java (java.util.regex) 35
  • 7. 2CVVGTP%#5'A K Podczas dopasowywania nie będzie uwzględniana +05'05+6+8' wielkość liter nale ących do kodu ASCII Tabela 13. Komentarze i modyfikatory trybu — ciąg dalszy Modyfikator Znak Znaczenie (sekwencja) trybu 2CVVGTP70+%1'A W Podczas dopasowywania nie będzie uwzględniana %#5' wielkość liter Unicode 2CVVGTP%#010A'3 Tryb „kanonicznej równowa ności” Unicode, w którym znak oraz sekwencja składająca się ze znaku bazowego i znaków łączących o takiej samej reprezentacji wizualnej są traktowane jako identyczne !VT[D Włącza podane tryby (KFOUWZ) w dalszej części podwyra enia !VT[D Wyłącza podane tryby (KFOUWZ) w dalszej części podwyra enia !VT[D. Włącza podane tryby (KFOUWZ) w wyra eniu podanym pomiędzy dwukropkiem i nawiasem zamykającym !VT[D Wyłącza podane tryby (KFOUWZ) w wyra eniu podanym pomiędzy dwukropkiem i nawiasem zamykającym W trybie Z sprawia, e wszystkie znaki do końca wiersza będą traktowane jako komentarz Tabela 14. Grupowanie, przechwytywanie, konstrukcje warunkowe i sterowanie Sekwencja Znaczenie Grupuje podwzorce, przechwytuje pasujące do nich łańcuchy znaków i zapamiętuje je w metaznakach , , … oraz , , … P Zawiera tekst odpowiadający P-tej grupie przechwytującej P W łańcuchu zamiennika zawiera tekst dopasowany do P-tej grupy przechwytującej 36 Wyrażenia regularne. Leksykon kieszonkowy
  • 8. ! Grupuje podwzorce, lecz nie powoduje przechwycenia i zapamiętania pasujących do nich łańcuchów znaków ! Nie pozwala na powtórne wykorzystanie tekstu pasującego do podwzorca Tabela 14. Grupowanie, przechwytywanie, konstrukcje warunkowe i sterowanie — ciąg dalszy Sekwencja Znaczenie ^ Sprawdza alternatywne podwzorce
  • 9. Dopasowuje podwzorzec 0 lub więcej razy Dopasowuje podwzorzec 1 lub więcej razy ! Dopasowuje podwzorzec 1 lub 0 razy ]P_ Dopasowuje podwzorzec dokładnie P razy ]P_ Dopasowuje podwzorzec co najmniej P razy ]Z[_ Dopasowuje podwzorzec co najmniej Z razy, jednak nie więcej ni [ razy
  • 10. ! Dopasowuje 0 lub więcej powtórzeń podwzorca, przy czym wybierana jest najmniejsza mo liwa liczba powtórzeń ! Dopasowuje 1 lub więcej powtórzeń podwzorca, przy czym wybierana jest najmniejsza mo liwa liczba powtórzeń !! Dopasowuje 0 lub 1 powtórzenie podwzorca, przy czym wybierana jest najmniejsza mo liwa liczba powtórzeń ]P_! Dopasowuje podwzorzec co najmniej P razy, przy czym wybierana jest najmniejsza mo liwa liczba powtórzeń ]Z[_! Dopasowuje podwzorzec co najmniej Z razy, jednak nie więcej ni [ razy, przy czym wybierana jest najmniejsza mo liwa liczba powtórzeń
  • 11. Dopasowuje 0 lub więcej powtórzeń podwzorca, przy czym nigdy nie jest realizowane nawracanie Dopasowuje 1 lub więcej powtórzeń podwzorca, przy czym nigdy nie jest realizowane nawracanie ! Dopasowuje 0 lub 1 powtórzenie podwzorca, przy czym nigdy nie jest realizowane nawracanie ]P_ Dopasowuje podwzorzec co najmniej P razy, przy czym nigdy nie jest realizowane nawracanie ]P_ Dopasowuje podwzorzec co najmniej P razy, przy czym nigdy nie jest realizowane nawracanie Java (java.util.regex) 37
  • 12. ]Z[_ Dopasowuje podwzorzec co najmniej Z razy, jednak nie więcej ni [ razy, przy czym nigdy nie jest realizowane nawracanie Klasy i interfejsy związane z wykorzystaniem wyrażeń regularnych W języku Java 1.4 wprowadzono dwie podstawowe klasy zwią- zane z obsługą wyrażeń regularnych — LCXCWVKNTGIGZ2CVVGTP oraz LCXCWVKNTGIGZ/CVEJGT, jeden wyjątek — LCXCWVKNTGIGZ 2CVVGTP5[PVCZ'ZEGRVKQP oraz nowy interfejs — %JCT5GSWGPEG. Ponadto firma Sun zaktualizowała klasę 5VTKPI — aktualnie implementuje ona interfejs %JCT5GSWGPEG i udostępnia podstawowe metody zwią- zane z wykorzystaniem wyrażeń regularnych i dopasowywaniem wzorców. Obiekty 2CVVGTP to skompilowane wyrażenia regularne, które można dopasowywać do wielu różnych łańcuchów znaków. Z kolei obiekt /CVEJGT to wynik dopasowania jednego obiektu 2CVVGTP do konkretnego łańcucha znaków (lub dowolnego obiektu implementującego interfejs %JCT5GSWGPEG). Znaki odwrotnego ukośnika umieszczone w literałach znakowych definiujących wyrażenie regularne należy odpowiednio oznaczać (dodatkowym znakiem odwrotnego ukośnika). A zatem P (znak nowego wiersza), umieszczany w literałach łańcuchowych Javy, które mają być użyte jako wyrażenie regularne, należy zapisać w postaci P. java.lang.String Opis Nowe metody służące do dopasowywania wyrażeń regularnych. 38 Wyrażenia regularne. Leksykon kieszonkowy
  • 13. Metody DQQNGCP OCVEJGU 5VTKPI Y[TCGPKG4GIWNCTPG Zwraca wartość VTWG, jeśli podane Y[TCGPKG4GIWNCTPG odpo- wiada całemu łańcuchowi znaków. 5VTKPI=? URNKV 5VTKPI Y[TCGPKG4GIWNCTPG Zwraca tablicę łańcuchów znaków, oddzielających od sie- bie kolejne fragmenty łańcucha odpowiadające podanemu Y[TCGPKW4GIWNCTPGOW. 5VTKPI=? URNKV 5VTKPI Y[TCGPKG4GIWNCTPG KPV NKOKV Zwraca tablicę łańcuchów znaków, oddzielających od siebie pierwsze NKOKV fragmentów łańcucha odpowiadających podanemu Y[TCGPKW4GIWNCTPGOW. 5VTKPI TGRNCEG(KTUV 5VTKPI Y[TCGPKG4GIWNCTPG 5VTKPI COKGPPKM Zastępuje podłańcuch odpowiadający podanemu Y[TCGPKW 4GIWNCTPGOW COKGPPKMKGO. 5VTKPI TGRNCEG#NN 5VTKPI Y[TCGPKG4GIWNCTPG 5VTKPI COKGPPKM Zastępuje wszystkie podłańcuchy odpowiadające podanemu Y[TCGPKW4GIWNCTPGOW COKGPPKMKGO. java.util.regex.Pattern extends 1DLGEV implements 5GTKCNKCDNG Opis Reprezentuje wzorzec wyrażenia regularnego. Metody UVCVKE 2CVVGTP EQORKNG 5VTKPI Y[TCGPKG4GIWNCTPG Tworzy nowy obiekt 2CVVGTP na podstawie podanego Y[TC GPKC4GIWNCTPGIQ. Java (java.util.regex) 39
  • 14. UVCVKE 2CVVGTP EQORKNG 5VTKPI Y[TCGPKG4GIWNCTPG KPV HNCIK Tworzy nowy obiekt 2CVVGTP na podstawie podanego Y[TC GPKC4GIWNCTPGIQ i argumentu HNCIK, którego wartość sta- nowią modyfikatory trybów połączone ze sobą bitowym operatorem 14. KPV HNCIU Zwraca modyfikatory trybu danego obiektu 2CVVGTP. /CVEJGT OCVEJGT %JCT5GSWGPEG NCPEWEJ9GLUEKQY[ Tworzy obiekt /CVEJGT, który umożliwi dopasowanie tego (VJKU) obiektu 2CVVGTP do podanego NCPEWEJC9GLUEKQYGIQ. UVCVKE DQQNGCP OCVEJGU 5VTKPI Y[TCGPKG4GIWNCTPG %JCT5GSWGPEG NCPEWEJ9GLUEKQY[ Zwraca wartość VTWG, jeśli podane Y[TCGPKG4GIWNCTPG od- powiada całemu łańcuchowi przekazanemu jako NCPEW EJ9GLUEKQY[. 5VTKPI RCVVGTP Zwraca wyrażenie regularne użyte do utworzenia danego obiektu 2CVVGTP. 5VTKPI=? URNKV %JCT5GSWGPEG NCPEWEJ9GLUEKQY[ Zwraca tablicę łańcuchów znaków, które rozdzielają w poda- nym NCPEWEJW9GLUEKQY[O kolejne wystąpienia wyrażenia regu- larnego reprezentowanego przez dany obiekt 2CVVGTP. 5VTKPI=? URNKV %JCT5GSWGPEG NCPEWEJ9GLUEKQY[ KPV NKOKV Zwraca tablicę łańcuchów znaków, które rozdzielają w poda- nym NCPEWEJW9GLUEKQY[O NKOKV wystąpień wyrażenia regu- larnego reprezentowanego przez dany obiekt 2CVVGTP. 40 Wyrażenia regularne. Leksykon kieszonkowy
  • 15. java.util.regex.Matcher extends 1DLGEV Opis Reprezentuje mechanizm dopasowujący wyrażenia regularne oraz wyniki dopasowania wyrażenia. Metody /CVEJGT CRRGPF4GRNCEGOGPV 5VTKPI$WHHGT UD 5VTKPI COKGPPKM Dołącza podłańcuch poprzedzający dopasowanie oraz COKGP PKM do bufora znakowego, określonego przy użyciu argu- mentu UD. 5VTKPI$WHHGT CRRGPF6CKN 5VTKPI$WHHGT UD Dołącza podłańcuch umieszczony za dopasowaniem do bu- fora znakowego, określonego przy użyciu argumentu UD. KPV GPF Indeks pierwszego znaku za końcem dopasowania. KPV GPF KPV ITWRC Indeks pierwszego znaku znajdującego się za przechwy- coną ITWRæ. DQQNGCP HKPF Odnajduje kolejny fragment łańcucha pasujący do wyrażenia regularnego. DQQNGCP HKPF KPV RQECVGM Odnajduje kolejny fragment łańcucha pasujący do wyrażenia regularnego, położony za znakiem o indeksie określonym jako RQECVGM. 5VTKPI ITQWR Tekst odpowiadający wyrażeniu regularnemu reprezento- wanemu przez dany obiekt 2CVVGTP. Java (java.util.regex) 41
  • 16. 5VTKPI ITQWR KPV ITWRC Tekst przechwycony przez grupę przechwytującą, określoną przez argument ITWRC. KPV ITQWR%QWPV Liczba grup przechwytujących zdefiniowanych w wyraże- niu reprezentowanym przez obiekt 2CVVGTP. DQQNGCP NQQMKPI#V Zwraca VTWG, jeśli dopasowanie znajduje się na samym po- czątku wejściowego łańcucha znaków. DQQNGCP OCVEJGU Zwraca VTWG, jeśli 2CVVGTP odpowiada całemu wejściowemu łańcuchowi znaków. 2CVVGTP RCVVGTP Zwraca obiekt 2CVVGTP, wykorzystywany w danym obiekcie /CVEJGT. 5VTKPI TGRNCEG#NN 5VTKPI COKGPPKM Zastępuje każde dopasowanie podanym COKGPPKMKGO. 5VTKPI TGRNCEG(KTUV 5VTKPI COKGPPKM Zastępuje pierwsze dopasowanie podanym COKGPPKMKGO. /CVEJGT TGUGV Przywraca początkowy stan mechanizmu dopasowywania, dzięki czemu kolejna operacja dopasowania rozpocznie się na samym początku wejściowego łańcucha znaków. /CVEJGT TGUGV %JCT5GSWGPEG NCPEWEJ9GLUEKQY[ Przywraca początkowy stan mechanizmu dopasowywania i określa, że ma on działać na podanym NCPEWEJW9GLUEKQY[O. KPV UVCTV Indeks pierwszego dopasowanego znaku. 42 Wyrażenia regularne. Leksykon kieszonkowy
  • 17. KPV UVCTV KPV ITWRC Indeks pierwszego znaku dopasowanego w grupie prze- chwytującej, określonej przy użyciu argumentu ITWRC. java.util.regex.PatternSyntaxException implements 5GTKCNKCDNG Opis Te wyjątki są zgłaszane w celu poinformowania o pojawieniu się błędów składniowych we wzorcu wyrażenia regularnego. Metody 2CVVGTP5[PVCZ'ZEGRVKQP 5VTKPI FGUE 5VTKPI TGIGZ KPV KPFGZ Tworzy nowy egzemplarz tej klasy. 5VTKPI IGVGUETKRVKQP Zwraca opis błędu. KPV IGV+PFGZ Zwraca indeks wystąpienia błędu. 5VTKPI IGV/GUUCIG Zwraca wielowierszowy komunikat o błędzie, zawierający jego opis, indeks, wzorzec wyrażenia regularnego oraz informacje na temat położenia miejsca wystąpienia błędu we wzorcu. 5VTKPI IGV2CVVGTP Zwraca wzorzec wyrażenia regularnego, które zgłosiło wyjątek. Java (java.util.regex) 43
  • 18. java.lang.CharSequence Interfejs implementowany przez: %JCT$WHHGT, 5VTKPI i 5VTKPI$WHHGT Opis Definiuje interfejs umożliwiający dostęp tylko do odczytu, dzięki któremu wzorce wyrażeń regularnych można zastosować do se- kwencji znaków. Metody EJCT EJCT#V KPV KPFGMU Zwraca znak znajdujący się w miejscu określonym przez KPFGMU, przy czym indeks pierwszego znaku ma wartość 0. KPV NGPIVJ Zwraca liczbę znaków w sekwencji. %JCT5GSWGPEG UWD5GSWGPEG KPV RQECVGM KPV MQPKGE Zwraca sekwencję zawierającą znak umieszczony w miejscu o indeksie RQECVGM i kończącą się bezpośrednio przed zna- kiem o indeksie MQPKGE. 5VTKPI VQ5VTKPI Zwraca obiekt 5VTKPI, zawierający reprezentację danej sekwen- cji. 44 Wyrażenia regularne. Leksykon kieszonkowy