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?)