◯ Za darmo: 5 użyć/dzień • Reset za 16h 7m
Rozwój & Technika

Generator wyrażeń regularnych

Przekształć opis w zwykłym języku angielskim w działające wyrażenie regularne dla JavaScript, Python, PCRE, Go, Java lub .NET — z wyjaśnieniem token po tokenie, przypadkami testowymi oraz opisem przypadków brzegowych, które wzorzec celowo dopasowuje lub nie dopasowuje.

Dowiedz się więcej

Generator wyrażeń regularnych tworzy wyrażenie regularne na podstawie opisu tego, co ma pasować, w wersji (flavor) którą rzeczywiście używasz — JavaScript, Python, PCRE, RE2 w Go, Java lub .NET — i następnie to udowadnia: każdy token jest wyjaśniony, Twoje przykłady ciągów, które muszą i nie muszą pasować, są sprawdzane, a wzorzec zawiera dodatkowe przypadki testowe, fragment użycia w Twoim języku oraz uwagę o przypadkach brzegowych, które celowo wyklucza. Informuje także, kiedy wymóg nie może być spełniony w wybranej wersji, np. look-behind w Go, zamiast cicho generować wzorzec, który nie skompiluje się.

0 / 3000
0 / 10000
0 / 10000

✓ Bezpłatne — bez rejestracji i bez karty kredytowej.

Programiści

Tylko firmowe adresy e‑mail

Walidacja rejestracji odrzucająca darmowe domeny poczty internetowej

Zobacz podgląd danych wejściowych i wyjściowych

Dane wejściowe

Co ma dopasowywać wzorzec?
Email addresses on the company domains acme.com and acme.co.uk, case-insensitive. Reject everything else, including gmail and addresses with nothing before the @.
Wersja wyrażenia regularnego
JavaScript / TypeScript
Przykłady, które muszą pasować (po jednym w wierszu)
[email protected] [email protected]
Przykłady, które nie powinny pasować (po jednym w wierszu)
[email protected] @acme.com
Ścisłość
Praktyczna (czytelna, obejmuje typowe przypadki)

Wynik (fragment)

```javascript
/^[a-z0-9._%+-]+@acme\.(?:com|co\.uk)$/i
```

**Flags:** `i` — domeny i części lokalne są porównywane bez uwzględniania wielkości liter.

| Token | Znaczenie |
|---|---|
| `^` … `$` | cały ciąg musi być adresem |
| `[a-z0-9._%+-]+` | część lokalna: jedna lub więcej liter, cyfr lub typowych znaków interpunkcyjnych |
| `@acme\.` | dosłowny @acme. — kropka jest escapowana |
| `(?:com\|co\.uk)` | dokładnie jedna z dwóch firmowych domen |

| Wejście | Oczekiwane | Dlaczego |
|---|---|---|
| `[email protected]` | pasuje | zwykła część lokalna, dozwolona domena |
| `[email protected]` | pasuje | kropka w części lokalnej, druga domena |
| `[email protected]` | brak dopasowania | domena nie znajduje się na liście |
| `@acme.com` | brak dopasowania | pustka część lokalna |
| `[email protected]` | brak dopasowania | wzorzec jest zakotwiczony, nic nie może podążać |…
Wszyscy odbiorcy

Daty kalendarzowe ISO 8601

Wyodrębnianie dat z linii logów przed ich parsowaniem

Zobacz podgląd danych wejściowych i wyjściowych

Dane wejściowe

Co ma dopasowywać wzorzec?
ISO calendar dates like 2026-09-20 anywhere inside a line of text. Month 01-12, day 01-31. Do not match 2026-13-01 or 26-09-20.
Wersja wyrażenia regularnego
Python (re)
Przykłady, które muszą pasować (po jednym w wierszu)
deployed 2026-09-20 at 05:01 2024-02-29
Przykłady, które nie powinny pasować (po jednym w wierszu)
2026-13-01 26-09-20
Ścisłość
Ścisła (odrzuca wszystko niepoprawne)

Wynik (fragment)

```python
r"(?<!\d)(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(?!\d)"
```

**Flags:** brak. Wzorzec nie jest zakotwiczony, ponieważ data znajduje się w środku linii.

| Token | Znaczenie |
|---|---|
| `(?<!\d)` | nie poprzedzone cyfrą — odrzuca `12026-09-20` |
| `(\d{4})` | cztero‑cyfrowy rok, przechwycony |
| `(0[1-9]\|1[0-2])` | miesiąc 01‑12 |
| `(0[1-9]\|[12]\d\|3[01])` | dzień 01‑31 |
| `(?!\d)` | nie jest następowany przez cyfrę |

**Edge cases:** wzorzec nie uwzględnia długości miesięcy — `2026-02-31` pasuje. Zweryfikuj za pomocą `datetime.date.fromisoformat()` po wyodrębnieniu, co pokazuje fragment użycia…

Twoje wyniki Generator wyrażeń regularnych pojawią się tutaj

Spodziewaj się czytelnych bloków kodu z komentarzami oraz krótkiego wyjaśnienia zmian.

Jak używać Generator wyrażeń regularnych

  1. Opisz, co wzorzec ma dopasowywać w prostym języku, włączając co ma odrzucać — „adresy e‑mail firmowe, nie darmowe webmail’e” jest lepsze niż „e‑maile”.
  2. Wybierz wersję, w której będzie uruchamiany. Go, JavaScript, Python, Java, .NET i PCRE różnią się wsparciem dla look‑around, obsługą Unicode i escapowaniem.
  3. Wklej kilka ciągów, które muszą pasować oraz kilka, które nie powinny, po jednym w wierszu. Wzorzec jest sprawdzany względem każdego z nich.
  4. Wybierz ścisłość: „Praktyczna” dla czytelnych wzorców obejmujących typowe dane, „Ścisła” dla walidacji, „Łagodna” gdy chcesz szeroko dopasować i później filtrować.

Przykłady użycia

1

Waliduj dane w formularzach, takie jak kody pocztowe, numery rejestracyjne lub wewnętrzne formaty ID

2

Wyodrębnij daty, numery faktur lub referencje zamówień z linii logów i e‑maili

3

Zbuduj funkcję znajdź‑zastąp do masowego czyszczenia w edytorze lub skrypcie migracyjnym

4

Wyjaśnij starszy wzorzec pozostawiony przez kolegę w bazie kodu, wklejając go jako opis

5

Konwertuj wzorzec z jednej wersji na inną przy przenoszeniu skryptu z Pythona do Go

Porady dla najlepszych wyników

  • Podaj przykłady, które nie powinny pasować — robią więcej dla doprecyzowania wzorca niż przykłady, które powinny pasować.
  • Jeśli potrzebujesz go wewnątrz łańcucha językowego, poproś o odpowiedni wariant: escapowanie jest częścią odpowiedzi.
  • Do walidacji skierowanej do użytkownika wybierz „Strict” i przeczytaj sekcję dotyczącą przypadków brzegowych przed wdrożeniem.
  • Wzorzec z zagnieżdżonym powtórzeniem na niezweryfikowanych danych może zawiesić serwer; wynik ostrzega, gdy istnieje takie ryzyko.

Najczęściej zadawane pytania

Jakie odmiany wyrażeń regularnych są obsługiwane?

JavaScript i TypeScript, moduł re w Pythonie, PCRE (PHP, Ruby, Perl), silnik RE2 w Go, Java i .NET. Wzorzec jest zapisywany jako literał w wybranym języku, z odpowiednim escapowaniem wymaganym przez ten język.

Czy narzędzie testuje wzorzec?

Każdy podany przez Ciebie przykład jest wymieniony w tabeli testowej wraz z oczekiwanym wynikiem i uzasadnieniem. Narzędzie dodaje także przypadki brzegowe — pusty input, białe znaki, bliskie dopasowania — abyś mógł zobaczyć, co może przejść.

Dlaczego w Go pojawia się informacja, że moje wymaganie jest niemożliwe?

Silnik RE2 w Go zapewnia dopasowanie w czasie liniowym i dlatego nie obsługuje look-ahead, look-behind ani odwołań wstecznych. Gdy opis wymaga jednego z tych elementów, narzędzie informuje o tym i proponuje najbliższy wzorzec, który RE2 może skompilować, zazwyczaj z małym sprawdzeniem w kodzie.

Jaka jest różnica między Practical, Strict a Lenient?

Wzorce Practical są czytelne i obejmują dane, które rzeczywiście widzisz. Wzorce Strict odrzucają każdy nieprawidłowy ciąg, kosztem długości i czytelności — używaj ich do walidacji. Wzorce Lenient łapują szeroko, abyś mógł później odfiltrować w kodzie — używaj ich do wyodrębniania z nieuporządkowanego tekstu.

Czy może wyjaśnić istniejące wyrażenie regularne?

Tak. Wklej istniejący wzorzec do opisu z poleceniem „explain this”, a wynik przeanalizuje go token po tokenie, wypisze, co dopasowuje, i wskaże ewentualne ryzyko katastrofalnego backtrackingu.

🔒
Twoja prywatność jest chroniona

Przechowujemy Twoje dane wejściowe i wynik przez maksymalnie 90 dni, aby obsługiwać usługę, zapobiegać nadużyciom i – jeśli jesteś zalogowany – pokazywać Twoją historię. Przetwarzają je dostawcy AI wymienieni w naszej Polityce prywatności. Nie sprzedajemy ich.

Powiązane narzędzia

Wypróbuj agenta

Agent Automatyzacji APIOpisz automatyzację prostym językiem → przepis REST/webhook → przykłady curl + Python + Node → mapowane…Wypróbuj agenta →

Powiązany przepływ

Saudi ZATCA Phase 2 przygotowanie e-faktury (TRN -> dwujęzyczna koperta -> QR-TLV)Zweryfikować TRN kupującego z Arabii Saudyjskiej, stworzyć envelope JSON ZATCA Phase 2 z dwujęzycznymi polami Arabic+English…Uruchom przepływ →

Czytaj więcej