Skip to content

Wyrażenia regularne - Ściąga

Dopasowywanie znaków

[abc] Dopasowuje dowolny znak spośród a, b lub c
[^abc] Nie dopasowuje znaków a, b lub c. „^” działa tylko, gdy jest pierwszym znakiem
[a-g] Dopasowuje dowolny znak z zakresu a-g
[^a-g] Nie dopasowuje żadnego znaku z zakresu a-g
[H-N] Dopasowuje dowolny znak z zakresu H-N
[0-9] Dopasowuje dowolny znak z zakresu 0-9
[a-gH-N] Dopasowuje dowolny znak z zakresów a-g lub H-N
Metaznaki:
. [^\n\r], dopasowuje dowolny znak oprócz znaku nowej linii
\s Biały znak: nowa linia, tabulacja, spacja itp.
\S [^\s] (Znak niebędący białym znakiem)
\d Cyfra: [0-9]
\D [^\d] (Znak niebędący cyfrą)
\w Znak słowa: [0-9A-Za-z_]
\W [^\w] (Znak niebędący znakiem słowa)

Grupy dopasowań

(a b)
(…) Grupa przechwytująca
(?:…) Grupa nieprzechwytująca
(?<name>…) lub (?’name’…) Nazwana grupa przechwytująca, „name” można dostosować
(?(condition)true_regex false_regex)

group(0) służy do pobierania całego dopasowanego ciągu, natomiast group(>0) pozwala wyodrębnić podgrupy przechwytujące z całego wyniku.

Uwaga: nazwane grupy przechwytujące są obsługiwane od Java 1.7 (poprzez przekazanie ciągu znaków „name” jako parametru do metody group). JS i Python na razie nie obsługują natywnie nazwanych grup przechwytujących.

Kwantyfikatory (Zakresy częstotliwości)

{3} Poprzedni element występuje dokładnie 3 razy, odpowiednik {3,3}
{3,6} Poprzedni element występuje od 3 do 6 razy
{3,} Poprzedni element występuje co najmniej 3 razy
{0,6} Poprzedni element występuje co najwyżej 6 razy
Metaznaki:
* {0,} (Zero lub więcej)
+ {1,} (Jeden lub więcej)
? {0,1} (Zero lub jeden)
\w* Tryb zachłanny (Greedy)
\w*? Tryb niezachłanny

Kotwice (Anotacje pozycji)

^ Początek ciągu
$ Koniec ciągu
\b Boundary, granica słowa
\B Niebędący granicą słowa
Asercje Lookaround:
(?=exp) Pozytywna asercja lookahead (przyrostek exp)
(?<=exp) Pozytywna asercja lookbehind (przedrostek exp)
(?!exp) Negatywna asercja lookahead (brak przyrostka exp)
(?<!exp) Negatywna asercja lookbehind (brak przedrostka exp)

\b(\w+)\b odpowiada (?<=\W?)(\w+)(?=\W?)