Jak napisać regex bez znajomości regexów?
Zamiast czytać dokumentację i kombinować z `\d+` i `[a-z]` ręcznie, wpisz przykłady które chcesz dopasować i te które chcesz pominąć. Tool sam wygeneruje 3-6 kandydatów na wyrażenie regularne i pokaże, który z nich najlepiej pasuje.
W lewej kolumnie wpisz co ma być dopasowane (po jednym przykładzie na linię). W prawej co NIE ma być dopasowane. Tool używa algorytmu: tokenizacja, alignacja, generalizacja, weryfikacja. Wynik to gotowe `/regex/flagi` z testem na każdym przykładzie.
Algorytm idzie od najprostszych wzorców (alternacja `(opt1|opt2)`) przez dopasowanie pozycyjne po strukturalne z kwantyfikatorami `\d+`, `[a-z]+`. Pokazuje wszystkie kandydaci, Ty wybierasz lub edytujesz ręcznie.
Jak korzystać
- W polu "Co dopasować" wpisz 3-10 przykładów, po jednym na linię. Im więcej przykładów, tym lepszy regex.
- W polu "Czego nie dopasowywać" wpisz przykłady, które NIE mają pasować (np. niepoprawne emaile, jeśli szukamy emaila). Pomaga toolowi odsiać zbyt szerokie wzorce.
- Tool generuje kilka kandydatów automatycznie. Każdy ma wynik: ile dopasował pozytywów, ile niepoprawnie dopasował negatywów.
- Wybierz kandydata klikając "Użyj tego". Pojawi się podgląd z wynikami testów na każdym przykładzie.
- Możesz włączyć "Edycja ręczna" żeby dostroić wybrany regex (np. dodać granice słów `\b`, modyfikatory `(?i)`).
- Kopiuj gotowy regex i wklej do swojego kodu (JS, Python, Java, Go, PHP).
- Jeśli żaden kandydat nie pasuje idealnie, dodaj więcej przykładów (z obu stron). Algorytm uczy się z każdej nowej linii.
Do czego się przydaje
Typowe sytuacje gdzie znajomość regexów ratuje pracę:
- Walidacja formularzy kalculacja w polu "potwierdź email" wymaga regexa. Tool wygeneruje go z 5 przykładów emaili w 30 sekund.
- Parsowanie logów szukanie wzorca timestampa, IP, user-agenta w plikach .log. Dajesz 3-4 linijki z logów, dostajesz wzorzec.
- Czyszczenie danych z CSV/Excela wycinanie numerów telefonów, kodów pocztowych, dat. Tradycyjnie pracochłonne, regex robi to w 1 wyrażeniu.
- Find & Replace w edytorach VSCode, Sublime, IntelliJ wszystkie obsługują regex w wyszukiwaniu. Jeden regex zamienia 200 fragmentów kodu naraz.
- Walidacja API Express middleware, FastAPI Pydantic, NestJS pipe wszystko można walidować regexem.
- Migracje bazy danych `UPDATE table SET col = REGEXP_REPLACE(col, ...)` w Postgres, MySQL, Oracle.
- Scrapowanie stron WWW wyciąganie URL-i, emaili, numerów telefonów z HTML-a (lepiej niż parsowanie regexem, ale dla prostych przypadków OK).
- Search w terminalu `grep -E`, `ripgrep`, `ack` używają regexów. Szybkie wyszukiwanie w gigabajtach kodu.
- Sanityzacja inputu sprawdzenie czy nazwa użytkownika ma tylko bezpieczne znaki, czy NIP ma 10 cyfr, czy numer ISBN jest poprawny.
Po wygenerowaniu regexa, przetestuj go interaktywnie lub skonwertuj do Pythona jeśli pracujesz w innym języku.