Znaki, metaznaki i metasekwencje
Flash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje
Najprostszym wyrażeniem regularnym jest wyrażenie, które dopasowuje sekwencję znaków, co ilustruje poniższy przykład:
var pattern:RegExp = /hello/;
Jednak poniższe znaki, nazywane metaznakami mają specjalne znaczenie w wyrażeniach regularnych:
^ $ \ . * + ? ( ) [ ] { } |
Na przykład: poniższe wyrażenie regularne dopasowuje literę A, po której następuje zero lub więcej instancji litery B (metaznak gwiazdka wskazuje na powtórzenie), po której następuje litera C:
/AB*C/
Aby uwzględnić metaznak bez jego specjalnego znaczenia we wzorcu wyrażenia regularnego, należy użyć znaku zmiany znaczenia — odwróconego ukośnika (\). Na przykład: poniższe wyrażenie regularne dopasowuje literę A, po której następuje litera B, po której z kolei następuje gwiazdka, a na końcu litera C:
var pattern:RegExp = /AB\*C/;
Metasekwencja podobnie jak metaznak ma w wyrażeniu regularnym specjalne znaczenie. Metasekwencja składa się z więcej niż jednego znaku. W następnych sekcjach szczegółowo omówione zostało korzystanie z metaznaków i metasekwencji.
Informacje o metaznakach
Poniższa tabela podsumowuje metaznaki używane w wyrażeniach regularnych:
Metaznak
|
Opis
|
^ (daszek)
|
Dopasowuje początek ciągu znaków. Gdy ustawiona jest flaga m (multiline), daszek dopasowuje także początek wiersza (patrz Flagi i właściwości). Należy zauważyć, że użycie daszka na początku klasy znaków wskazuje negację, a nie początek ciągu znaków. Więcej informacji zawiera sekcja Klasy znaków.
|
$(znak dolara)
|
Dopasowuje koniec ciągu znaków. Z ustawioną flagą m (multiline) $ dopasowuje także położenie przed znakiem nowego wiersza (\n). Więcej informacji zawiera sekcja Flagi i właściwości.
|
\ (ukośnik odwrotny)
|
Powoduje przejście w tryb metaznaków dla znaków specjalnych.
Z ukośnika odwrotnego należy korzystać także w celu użycia znaku zwykłego ukośnika w literale wyrażenia regularnego tak, jak w przykładzie /1\/2/ (aby dopasować znak 1, po którym następuje znak zwykłego ukośnika i znak 2).
|
. (kropka)
|
Dopasowuje dowolny pojedynczy znak.
Kropka dopasowuje znak nowego wiersza (\n) tylko, jeśli ustawiona została flaga s (dotall). Więcej informacji zawiera sekcja Flagi i właściwości.
|
* (gwiazda)
|
Dopasowuje poprzedni element powtórzony zero lub więcej razy.
Więcej informacji zawiera sekcja Kwantyfikatory.
|
+ (plus)
|
Dopasowuje poprzedni element powtórzony co najmniej raz.
Więcej informacji zawiera sekcja Kwantyfikatory.
|
? (znak zapytania)
|
Dopasowuje poprzedni element powtórzony zero lub raz.
Więcej informacji zawiera sekcja Kwantyfikatory.
|
( i )
|
Definiuje grupy w wyrażeniu regularnym. Grup należy używać:
Do ograniczania zakresu alternatora |: /(a|b|c)d/
Do definiowania zakresu kwantyfikatora: /(walla){1,2}/
W odwołaniach wstecznych. Na przykład: \1 w poniższym wyrażeniu regularnym dopasowuje wszystko, co jest zgodne z pierwszą grupą ujętą w nawias okrągły wzorca:
/(\w*) is repeated: \1/
Więcej informacji zawiera sekcja Grupy.
|
[ and ]
|
Definiuje klasę znaku, która definiuje możliwe dopasowania dla pojedynczego znaku:
/[aeiou]/ dopasowuje jeden, dowolny z określonych znaków.
W klasach znaku użycie łącznika (-) wskazuje zakres znaków:
/[A-Z0-9]/ dopasowuje wielkie litery od A do Z lub od 0 do 9.
W klasach znaku należy wstawić odwrotny ukośnik, aby użyć znaków ] oraz
- :
/[+\-]\d+/ dopasowuje + lub - przed co najmniej jedną cyfrą.
W klasach znaku inne znaki, które są zazwyczaj metaznakami, traktowane są jako znaki normalne (nie metaznaki) bez konieczności użycia znaku odwrotnego ukośnika:
/[$]/£ dopasowuje $ lub £.
Więcej informacji zawiera sekcja Klasy znaków.
|
| (znak kreski pionowej)
|
Używany dla alternatywy, aby dopasować część po lewej stronie lub część po prawej stronie znaku:
/abc|xyz/ dopasowuje abc lub xyz.
|
Informacje o metasekwencjach
Metesekwencje są sekwencjami znaków, które mają specjalne znaczenie we wzorcu wyrażenia regularnego. W poniższej tabeli opisane zostały metasekwencje:
Metasekwencja
|
Opis
|
{n}
{n,}
i
{n,n}
|
Określa kwantyfikator numeryczny lub zakres kwantyfikatora dla poprzedniego elementu:
/A{27}/ dopasowuje znak A powtórzony 27 razy.
/A{3,}/ dopasowuje znak A powtórzony co najmniej 3 razy.
/A{3,5}/ dopasowuje znak A powtórzony od 3 do 5 razy.
Więcej informacji zawiera sekcja Kwantyfikatory.
|
\b
|
Dopasowuje położenie między znakiem słowa a znakiem nie należącym do słowa. Jeśli pierwszy lub ostatni znak w ciągu jest znakiem słowa, dopasowuje także początek lub koniec ciągu.
|
\B
|
Dopasowuje położenie między dwoma znakami słowa. Dopasowuje także położenie między dwoma znakami nie należącymi do słowa.
|
\d
|
Dopasowuje cyfrę dziesiętną.
|
\D
|
Dopasowuje dowolny znak inny niż cyfra.
|
\f
|
Dopasowuje znak przesunięcia strony.
|
\n
|
Dopasowuje znak nowego wiersza.
|
\r
|
Dopasowuje znak powrotu karetki.
|
\s
|
Dopasowuje dowolny biały znak (spacja, tabulacja, znak nowego wiersza lub znak powrotu karetki).
|
\S
|
Dopasowuje dowolny znak inny niż biały znak.
|
\t
|
Dopasowuje znak tabulacji.
|
\unnnn
|
Dopasowuje znak Unicode do znaku o kodzie szesnastkowym nnnn Na przykład: \u263a to uśmieszek.
|
\v
|
Znak pionowego wysunięcia strony.
|
\w
|
Dopasowuje znak słowa (AZ–, az–, 0-9 lub _). Należy zauważyć, że \w nie dopasowuje znaków spoza alfabetu języka angielskiego takich, jak é , ñ lub ç .
|
\W
|
Dopasowuje dowolny znak inny niż znak słowa.
|
\\xnn
|
Dopasowuje znak do określonej wartości ASCII definiowanej przez liczbę szesnastkową nn
|