Ściąga regex

Krok 1 / 3 33%

Wybierz wariant regex

Zacznij od używanego silnika. Odnośnik ukryje składnię, która nie dotyczy wybranego silnika.

Korzystaj z tej interaktywnej ściągi, aby porównać popularną składnię wyrażeń regularnych przed wklejeniem jej do kodu. Wybierz JavaScript, PCRE2/PHP, Python re, .NET albo widok wszystkich silników, następnie temat i przeszukaj wyświetlone wpisy. Ściąga zaznacza składnię właściwą danej rodzinie, ponieważ token może kompilować się w jednym silniku, a w innym zostać odrzucony lub znaczyć coś innego. Wyszukiwanie i kopiowanie odbywają się w przeglądarce, a strona nie uruchamia wzorców na tekście.

Jak korzystać ze ściągi regex

  1. 1

    Wybierz silnik

    Zacznij od JavaScript, PCRE2/PHP, Python re, .NET albo porównaj wszystkie. Widok skupiony pomija wpisy niepasujące do wybranego silnika.

  2. 2

    Wybierz temat

    Otwórz kotwice, klasy znaków, kwantyfikatory, grupy, asercje, popularne formy wzorców lub flagi i opcje.

  3. 3

    Szukaj i kopiuj lokalnie

    Szukaj tokenów i opisów bezpośrednio na stronie, a potem wybierz token do skopiowania. Tekst wyszukiwania nie trafia na serwer ani do adresu URL.

  4. 4

    Sprawdź w rzeczywistym runtime

    Użyj silnika, flag i API projektu, aby skompilować i przetestować ostateczne wyrażenie. Ta ściąga wyjaśnia składnię, a nie waliduje danych produkcyjnych.

Zgodność ma znaczenie

Wyrażenia regularne nie są jednym uniwersalnym językiem. Ta ściąga oddziela składnię, która wygląda podobnie, lecz nie przenosi się bez zmian między silnikami.

Funkcja JavaScript RegExp PCRE2 / PHP Python re .NET
Bezwzględny początek Brak \A \A \A \A
Bezwzględny koniec Brak \z \z \Z \z
Właściwość Unicode \p{L} Użyj trybu u lub v Obsługiwana Nie ma jej w wbudowanym re Obsługiwana
Nazwana grupa przechwytująca (?<name>...) (?<name>...) lub (?P<name>...) (?P<name>...) (?<name>...)
Nazwane odwołanie wsteczne \k<name> \k<name> lub (?P=name) (?P=name) \k<name>
Dopasowania globalne Flaga g i API dopasowania API powtórzeń, np. preg_match_all API powtórzeń, np. finditer API powtórzeń, np. Matches

\d i \w wymagają szczególnej uwagi. W JavaScript \d nadal oznacza cyfry ASCII 0-9, a \w to zasadniczo znaki słowa ASCII nawet po dodaniu u. Inne silniki mogą stosować reguły Unicode zależnie od trybu i konfiguracji. Jeśli zachowanie Unicode jest ważne, zapisz i przetestuj dokładnie potrzebną właściwość lub klasę.

Kotwice i granice

Token Co wyraża Uwaga dotycząca przenośności
^ Początek danych wejściowych lub wiersza w trybie wielowierszowym Dostępne we wszystkich czterech rodzinach.
$ Koniec danych wejściowych lub wiersza w trybie wielowierszowym Dostępne we wszystkich czterech; szczegóły końcowego znaku nowej linii różnią się.
\b Granica słowa Definicja znaku słowa zależy od silnika i trybu.
\A Bezwzględny początek tekstu PCRE2, Python i .NET; nie JavaScript.
\z Bezwzględny koniec tekstu PCRE2 i .NET; Python używa \Z.
\Z Koniec tekstu w Pythonie PCRE2 i .NET mogą też dopasować przed końcowym znakiem nowej linii; użyj tam \z dla bezwzględnego końca.

Grupy i asercje

Token Znaczenie Ważne ograniczenie
(abc) Grupa przechwytująca Dostępna we wszystkich czterech rodzinach.
(?:abc) Grupa nieprzechwytująca Dostępna we wszystkich czterech rodzinach.
(?<name>abc) Nazwana grupa Składnia JavaScript, PCRE2 i .NET.
(?P<name>abc) Nazwana grupa Składnia Pythona; PCRE2 również ją akceptuje.
(?=abc) / (?!abc) Asercja pozytywna / negatywna wprzód Dostępna we wszystkich czterech rodzinach.
(?<=abc) / (?<!abc) Asercja pozytywna / negatywna wstecz Wszystkie ją obsługują, ale dozwolone długości różnią się.

Asercja wstecz jest częstą pułapką przenośności. Python re wymaga stałej szerokości. Obsługa w JavaScript zależy od wdrożonego runtime, dlatego testuj dokładny wzorzec w najstarszym obsługiwanym runtime, zamiast polegać wyłącznie na wierszu ściągi.

Formy wzorców, nie pełne walidatory

Wpisy popularnych wzorców celowo opisują formę. Na przykład ^\d{4}-\d{2}-\d{2}$ akceptuje 2026-99-99, a prosty wzorzec o kształcie adresu e-mail nie wdraża pełnego standardu adresów e-mail. Po wstępnej kontroli formatu analizuj daty, URL i identyfikatory strukturalne właściwą biblioteką.

Forma Przykładowy wzorzec Czego nie dowodzi
Liczba dziesiętna ze znakiem ^-?\d+(?:\.\d+)?$ Lokalnych znaków dziesiętnych, grupowania, zakresu lub precyzji.
Tekst o formie e-mail ^[\w.+-]+@[\w-]+\.[\w.-]+$ Dostarczalnego albo w pełni standardowego adresu e-mail.
Tekst o formie URL HTTP(S) ^https?://\S+$ Bezpiecznego, możliwego do analizy lub osiągalnego URL.
Forma daty ISO ^\d{4}-\d{2}-\d{2}$ Prawdziwej daty kalendarzowej.
Znaki slug ASCII ^[A-Za-z0-9_-]+$ Reguł wielkości liter, separatorów lub słów zastrzeżonych aplikacji.

Flagi i opcje

Nie kopiuj flagi bez sprawdzenia API gospodarza. JavaScript zapisuje /pattern/g, Python przekazuje re.I lub re.X, .NET może użyć RegexOptions, a PCRE2/PHP zwykle używa ograniczników i końcowych modyfikatorów. g to flaga globalnych dopasowań JavaScript, nie modyfikator PCRE2; powtarzane dopasowania PCRE2 są zwykle sterowane przez API PHP. Tryb rozszerzony (x) jest dostępny w PCRE2, Pythonie i .NET, ale nie jako flaga JavaScript.

Najczęściej zadawane pytania

Nie. To odniesienie składni z lokalnym wyszukiwaniem i kopiowaniem w przeglądarce. Użyj testera regex i runtime aplikacji, aby kompilować wzorce i sprawdzać reprezentatywne dane wejściowe.

Niektóre znajomo wyglądające tokeny nie są przenośne. Wbudowane re Pythona używa na przykład (?P<name>…) dla nazwanych grup, JavaScript używa (?<name>…), a JavaScript nie obsługuje bezwzględnych kotwic \A i \z.

Nie. W JavaScript \d oznacza cyfry ASCII, a \w zasadniczo znaki słowa ASCII nawet z flagą u. Inne silniki mają odmienne tryby i opcje Unicode, więc testuj zachowanie wymagane przez dane.

Traktuj je wyłącznie jako szybkie kontrole formy. Nie dowodzą, że adres e-mail jest dostarczalny, URL bezpieczny lub osiągalny albo że data istnieje w kalendarzu. Dla reguł produkcyjnych użyj przeznaczonego do tego parsera lub walidatora.

Powiązane narzędzia