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.
|
\u
nnnn
|
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.
|
\\x
nn
|
Dopasowuje znak do określonej wartości ASCII definiowanej przez liczbę szesnastkową
nn
|
|
|
|