Ściąga regex
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
Wybierz silnik
Zacznij od JavaScript, PCRE2/PHP, Python re, .NET albo porównaj wszystkie. Widok skupiony pomija wpisy niepasujące do wybranego silnika.
-
2
Wybierz temat
Otwórz kotwice, klasy znaków, kwantyfikatory, grupy, asercje, popularne formy wzorców lub flagi i opcje.
-
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
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
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Konwerter ASCII na binarny
Konwertuj dowolny ciąg ASCII na reprezentację binarną. Każdy znak staje się ośmioma bitami, rozdzielonymi spacjami, gotowymi do wklejenia w ślad protokołu albo zadanie domowe.
Generator losowych liter
Generuj losowe litery A-Z. Wybierz liczbę, wielkie litery, małe litery lub zapis mieszany i użyj wyniku w grach, zadaniach lub lekcjach.
Próbnik kolorów HEX
Wybierz lub wpisz kolor HEX i sprawdź RGB, HSL, przybliżone CMYK, luminancję względną oraz kontrast z bielą i czernią.
Konwerter Base64 na Hex
Konwertuj standardowy ciąg Base64 na bazowe bajty zapisane ciągłym szesnastkowo wielkimi literami. Ścisłe dekodowanie, idealne do tokenów, kluczy i podpisów JWT.