Tekst

Regex Tester / Find & Replace

Testowanie wyrażeń regularnych na rzeczywistym tekście: podświetlone dopasowania i przeanalizowane grupy przechwytujące, lub zamiana znalezionych dopasowań na nowy tekst.


                        

                        

A regular expression (regex) is a compact language for describing patterns in text — for searching, validating a format, or replacing matches. This tool highlights matches in real text as you type the pattern, breaks out capture groups, and supports a find-and-replace mode.

How to use it

Common uses

Things to keep in mind

Greedy quantifiers (*, +) grab as many characters as possible — add ? for the minimal match instead (e.g. .*? instead of .*).

Syntax varies slightly between languages — an expression that works here (a JavaScript engine) may need adjusting for PCRE, .NET, or Python.

Artykuł o tym narzędziu: Wyrażenia regularne: podstawowa składnia i typowe wzorce

Najczęstsze pytania

Jaki silnik regex jest używany?

Narzędzie używa silnika regex JavaScript, a nie PCRE, więc niektóre składnie specyficzne dla PCRE (jak rekurencyjne asercje lub niektóre tryby dopasowania posesywnego) nie będą tu działać; obsługiwane są popularne flagi, takie jak g, i, m, s i u.

Jaka jest różnica między kwantyfikatorami zachłannymi a leniwymi oraz między Test a Replace?

Zachłanny kwantyfikator, jak * lub +, przechwytuje jak najwięcej tekstu, podczas gdy jego leniwa wersja (*?, +?) zatrzymuje się jak najwcześniej; jeśli chodzi o tryby, Test podświetla dopasowania i wypisuje grupy przechwytujące (w tym nazwane), a Replace stosuje tekst zastępczy, z odwołaniami takimi jak $1, do każdego dopasowania.

Czy mój tekst i wyrażenie są wysyłane na serwer?

Nie, ocena wyrażenia regularnego odbywa się całkowicie po stronie klienta w Twojej przeglądarce, nic nie jest wysyłane online.

Czym jest katastrofalny backtracking?

Zagnieżdżone kwantyfikatory, takie jak (a+)+, mogą przy określonych danych wejściowych zmusić silnik do przetworzenia wykładniczej liczby kombinacji — strona lub skrypt „zawiesza się" na pozornie prostym wyrażeniu. To realna klasa podatności (ReDoS), dlatego złożone zagnieżdżone kwantyfikatory warto testować na długich, „prawie pasujących" ciągach.

Dlaczego moje wyrażenie działa w jednym języku programowania, a w innym nie?

Składnia regex nie jest w pełni znormalizowana: PCRE (PHP i wiele innych języków), .NET, Python re oraz JavaScript mają drobne różnice w obsłudze niektórych konstrukcji (np. look-behind czy nazwanych grup) — wyrażenie napisane dla jednego silnika nie zawsze działa bez zmian w innym.

Artykuły: Tekst

Case Converter: po co istnieją różne style nazewnictwa

Dlaczego w jednym projekcie zmienne zapisuje się camelCase, a pliki kebab-case, i skąd wzięły się te zasady.

Text Diff: jak algorytmy znajdują różnicę między dwoma tekstami

Jak algorytm diff znajduje minimalny zestaw zmian między dwiema wersjami tekstu.

Sortowanie i usuwanie duplikatów wierszy: do czego się przydaje

Dlaczego sortowanie numeryczne stawiające „10" przed „9" jest błędem, i jak tego uniknąć.

String Escape: dlaczego ten sam tekst trzeba escapować inaczej

Dlaczego ten sam cudzysłów jest escapowany inaczej w ciągu JS, w JSON i w poleceniu shell.

CRLF kontra LF: dlaczego znaki końca linii wciąż mają znaczenie

Dlaczego plik napisany w Windows może wyglądać jako „cały zmieniony" w gicie na Linuksie.

Liczenie znaków i słów: dlaczego to nie zawsze jest trywialne

Dlaczego emoji lub litera z akcentem może liczyć się jako kilka znaków naraz.

Lorem Ipsum: skąd wziął się tekst zastępczy i po co jest potrzebny

Dlaczego projektanci celowo używają „bezsensownego" tekstu zamiast prawdziwej treści w makietach.

Slugify: jak zamienić dowolny tekst w adres URL

Jak tytuł „Witaj, Świecie! Jak się masz?" zamienia się w kompatybilny z URL ciąg witaj-swiecie-jak-sie-masz.

Markdown: dlaczego prosta składnia tekstowa pokonała rozbudowane edytory

Dlaczego programiści wolą pisać dokumentację w Markdown niż w edytorze tekstu sformatowanego.

Spacje i niewidoczne znaki: ukryta przyczyna dziwnych błędów

Dlaczego dwa pozornie identyczne ciągi znaków mogą się nie zgadzać przez niewidoczny znak.

Text Reverse: dlaczego „odwrócenie tekstu" jest trudniejsze, niż się wydaje

Dlaczego naiwne odwrócenie ciągu znaków może zamienić emoji w nieużyteczne bajty.

Analiza częstotliwości tekstu: po co liczyć powtórzenia słów

Jak częstotliwość liter w zaszyfrowanym tekście pomaga złamać najprostsze szyfry podstawieniowe.