Klasy znaków

Flash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje

Klasy znaku służą do określania listy znaków do dopasowania jednego położenia w wyrażeniu regularnym. Klasy znaku definiowane są w nawiasach kwadratowych ( [ i ] ). Na przykład: następujące wyrażenie regularne definiuje klasę znaku, która dopasowuje bag , beg , big , bog lub bug :

/b[aeiou]g/

Sekwencje zmiany znaczenia w klasach znaku

Większość metaznaków i metasekwencji, które maja zazwyczaj specjalne znaczenia w wyrażeniu regularnym, nie ma tych samych znaczeń wewnątrz klasy znaku. Na przykład: gwiazdka w wyrażeniu regularnym używana jest dla powtórzeń, ale nie ma takiego samego znaczenia w momencie wystąpienia w klasie znaku. Poniższa klasa znaku dopasowuje gwiazdkę dosłownie razem z innymi, wymienionymi znakami:

/[abc*123]/

Jednak wymienione poniżej trzy znaki funkcjonują jako metaznaki o znaczeniu specjalnym w klasach znaku:

Metaznak

Znaczenie w klasach znaku

]

Definiuje koniec klasy znaku.

-

Definiuje zakres znaków (patrz następna sekcja, „Zakresy znaków w klasach znaku”).

\

Definiuje metasekwencję i cofa znaczenie specjalne metaznaku

Aby każdy z tych znaków został rozpoznany dosłownie jako znak (bez specjalnego znaczenia metaznaku), należy poprzedzić go znakiem zmiany znaczenia — ukośnikiem odwrotnym. Na przykład: następujące wyrażenie regularne zawiera klasę znaku, która dopasowuje dowolny z czterech symboli ( $ , \ , ] , lub - ):

/[$\\\]\-]/

Poza metaznakami, które zachowują swoje znaczenie specjalne, w klasach znaku jako metasekwencje funkcjonują:

Metasekwencja

Znaczenie w klasach znaku

\n

Dopasowuje znak nowego wiersza.

\r

Dopasowuje znak powrotu karetki.

\t

Dopasowuje znak tabulacji.

\u nnnn

Dopasowuje znak do określonej wartości kodu Unicode (zdefiniowanej przez liczbę szesnastkową nn ).

\\x nn

Dopasowuje znak do określonej wartości ASCII (zdefiniowanej przez liczbę szesnastkową nn )

Pozostałe metasekwencje wyrażeń regularnych i metaznaków w klasie znaku traktowane są tak, jak normalne znaki.

Zakresy znaków w klasach znaku

Do określania zakresu znaków (np. A-Z , a-z lub 0-9 ) służy łącznik. Znaki te muszą stanowić poprawny zakres w zestawie znaków. Na przykład: poniższa klasa znaku dopasowuje dowolny znak z zakresu a-z lub dowolną cyfrę:

/[a-z0-9]/

Można również użyć kodu znaku ASCII \\x nn w celu określenia zakresu przez wartość ASCII. Na przykład: poniższa klasa znaku dopasowuje dowolny znak z rozszerzonego zestawu znaków ASCII (np. é i ê ):

\\x

Zanegowane klasy znaku

Użycie znaku daszka ( ^ ) na początku klasy znaku powoduje zanegowanie tej klasy — dopasowany zostanie dowolny niewymieniony w klasie znak. Poniższa klasa znaku dopasowuje dowolny znak poza małymi literami ( az –) i cyfrą:

/[^a-z0-9]/

Aby wskazać negację, należy wpisać znak daszka ( ^ ) na początku klasy znaku. W innym wypadku znak daszka zostanie po prostu dodany do znaków klasy znaku. Na przykład poniższa klasa znaku dopasowuje dowolny ze znaków symboli, łącznie z daszkiem:

/[!.,#+*%$&^]/