Przejdź do treści głównej
FreeOnlineTools Go
Polski
Odniesienie

Ściąga Wyrażeń Regularnych: Składnia, Flagi i Częste Wzorce

Autor: FreeOnlineTools Team · Zaktualizowano 2026-08-28

Szybka odpowiedź

Regex łączy literal characters, metacharacters (., \d, \w, \s), quantifiers (*, +, ?, {n,m}), anchors (^, $, \b) i groups ((...), [...]). Flags jak g (global), i (case-insensitive), m (multiline) zmieniają zachowanie match. Testuj wzorce live naszym Regex Tester.

Wstęp

Regular expressions (regex) opisują wzorce tekstu używając kompaktowego języka formalnego. Są obsługiwane przez każdy nowoczesny język programowania, edytor i search tool. Ten cheat sheet to referencja syntaksy zdefiniowanej przez ECMAScript plus powszechne wzorce, które możesz skopiować i adaptować. Użyj naszego Regex Tester aby testować wzorce.

Krok po kroku

  1. Klasy znaków — dopasowują zestaw znaków

    [abc] dopasowuje a, b lub c. [^abc] pasuje do wszystkiego oprócz a, b, c. [a-z] pasuje do dowolnej małej litery. Predefiniowane klasy: \d = [0-9], \D = niecyfrowe, \w = [A-Za-z0-9_], \W = inne niż słowo, \s = białe znaki, \S = niebiałe znaki, . = dowolny znak z wyjątkiem nowej linii (użyj flagi s, aby uwzględnić nową linię).

  2. Kwantyfikatory — ile razy powtarzać

    * = 0 lub więcej. + = 1 lub więcej. ? = 0 lub 1. {n} = dokładnie n. {n,} = co najmniej n. {n,m} = pomiędzy n i m. Dodać ? dla leniwego dopasowywania (np. *? dopasowuje jak najmniejszą liczbę dopasowań). Zachłanny jest ustawieniem domyślnym i może powodować katastrofalne cofanie się w przypadku zagnieżdżonych wzorców.

  3. Kotwice i granice — gdzie dopasować

    ^ dopasowuje początek łańcucha (lub linię z flagą m). $ pasuje do końca. \b dopasowuje granicę słowa (pomiędzy \w i \W). \B dopasowuje granicę inną niż słowo. Kotwice mają zerową szerokość — testują pozycję bez zużywania znaków.

  4. Grupy i naprzemienność

    (abc) jest grupą przechwytującą; użyj 1 USD, 2 USD w zamian. (?:abc) jest grupą nieprzechwytującą. (?=abc) to wyprzedzenie (stwierdza, co następuje). (?!abc) to negatywne spojrzenie w przyszłość. (?<=abc) to spojrzenie wstecz (ES2018+). a|b to naprzemienność (a lub b).

  5. Flagi — zmień zachowanie dopasowywania

    g = global (znajdź wszystkie dopasowania, nie tylko pierwsze). i = wielkość liter nie jest uwzględniana. m = multilinia (^ i $ dopasowują granice linii). s = dotAll (. pasuje do nowej linii). u = unicode (traktuj wzór jako punkty kodowe Unicode; potrzebne w przypadku emoji i znaków astralnych). y = sticky (dopasowanie tylko do lastIndex).

Przykłady

Dopasuj adres e-mail (praktyczne, uproszczone zgodnie z RFC 5322)

Wejście: Pattern: /^[^\s@]+@[^\s@]+\.[^\s@]+$/

Wyjście: Pasuje do „użytkownik@example.com” i „a.b@sub.domain.co”, ale nie do „zwykłego adresu” ani „@no-user.com”

Wyodrębnij wszystkie kody kolorów szesnastkowych z CSS

Wejście: Pattern: /#[0-9a-fA-F]{3,8}\b/g

Wyjście: In 'color: #fff; background: #1a2b3c4d' finds ['#fff', '#1a2b3c4d']

Zweryfikuj datę ISO 8601 (RRRR-MM-DD)

Wejście: Pattern: /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/

Wyjście: Dopasowuje „2026-08-28”, ale odrzuca „2026-13-01” i „2026-02-31”

Zamień cyfry na #, używając grupy przechwytywania

Wejście: „Zamówienie 42 wysłane” zastąpione przez /(\d+)/g →'#$1'

Wyjście: „Zamówienie nr 42 wysłane”

Typowe problemy

  • Zachłanne kwantyfikatory dopasowują za dużo: „<.*>” w „<a><b>” dopasowuje cały ciąg „<a><b>” zamiast „<a>”. Użyj „<.*?>” (leniwy), aby najpierw dopasować „<a>”.
  • Katastrofalne cofanie się: zagnieżdżone kwantyfikatory, takie jak (a+)+b na wejściu „aaaaaaaaaaaaaaaa!” może zająć wykładniczy czas. Przepisz wzór lub użyj grup atomowych/kwantyfikatorów dzierżawczych, jeśli jest to obsługiwane.
  • Zapomnienie flagi u dla Unicode: /^.$/ dopasowuje pojedynczą jednostkę kodu, więc emoji takie jak „😀” (dwie jednostki kodu) nie działają bez flagi u. Zawsze dodawaj u podczas dopasowywania znaków astralnych.
  • Mylenie \b (granica słowa) z \s (biała spacja): \b dopasowuje słowo i znak niebędący słowem, więc działa również na początku/końcu łańcucha. \s dopasowuje tylko rzeczywiste białe znaki.

Porady

  • Zawsze testuj wyrażenie regularne w oparciu o pasujące i niepasujące próbki w naszym Testerze wyrażeń regularnych przed osadzeniem go w kodzie produkcyjnym — przypadki brzegowe łatwo przeoczyć.
  • Preferuj klasy znaków [a-z] zamiast naprzemienności (a|b|...|z) dla pojedynczych znaków — klasy są szybsze i wyraźniejsze.
  • Używaj grup nieprzechwytujących (?:...), jeśli nie potrzebujesz przechwyconej wartości — przechwytywanie wiąże się z niewielkim kosztem wydajności i zaśmieca tablicę wyników.
  • Skompiluj wyrażenie regularne raz z nową RegExp() lub literałem w zasięgu modułu, a nie w gorącej pętli — ponowna kompilacja tego samego wzorca przy każdej iteracji marnuje procesor.

Powiązane narzędzia

Powiązane przewodniki

Referencje