Przejdź do treści
Quaestio

Tester wyrażeń regularnych

Wpisz wzorzec i tekst do sprawdzenia, a każde dopasowanie zostanie podświetlone już podczas pisania.

Flagi

Przykłady

Użyj $1 lub $<name> dla grup, $& dla całego dopasowania i $$ dla znaku dolara.

Najczęstsze elementy
.
dowolny znak oprócz znaku nowego wiersza
\d
cyfra 0–9
\w
litera a–z, cyfra lub podkreślnik
\s
spacja, tabulator lub znak nowego wiersza
\D \W \S
przeciwieństwo \d, \w i \s
\b
granica między znakiem słowa a innym znakiem
^
początek tekstu, a z m początek wiersza
$
koniec tekstu, a z m koniec wiersza
[abc] [a-z]
jeden ze znaków albo znak z zakresu
[^abc]
żaden z tych znaków
a|b
a lub b
(…)
grupa przechwytująca
(?:…)
grupa nieprzechwytująca
(?<name>…)
grupa nazwana
\1 \k<name>
ten sam tekst co grupa 1 lub grupa o nazwie name
*
zero lub więcej razy
+
jeden lub więcej razy
?
zero lub jeden raz
{3} {2,5} {2,}
dokładnie 3, od 2 do 5 lub co najmniej 2 razy
*? +? ??
jak najmniej razy
(?=…)
po którym występuje
(?!…)
po którym nie występuje
(?<=…) (?<!…)
poprzedzone, niepoprzedzone
\p{L}
litera w dowolnym piśmie (wymaga u lub v)
Osadź

Osadź to narzędzie na swojej stronie

Skopiuj kod i wklej go tam, gdzie ma się pojawić narzędzie, np. we wpisie na blogu albo na stronie szkoły. To nic nie kosztuje, ramka nie zawiera reklam, a narzędzie liczy w przeglądarce odwiedzającego.

Jak to działa

Wyrażenie regularne to wzorzec opisujący tekst. \d+ oznacza jedną lub więcej cyfr, [a-z] literę od a do z, a ^ początek tekstu. Wzorzec jest przykładany do tekstu od lewej do prawej, a każde miejsce, w którym pasuje, to dopasowanie.

Tester korzysta z silnika przeglądarki, czyli z odmiany wyrażeń regularnych określonej w standardzie ECMAScript dla JavaScriptu. Różni się ona w kilku punktach od PCRE, Pythona i .NET: nie ma na przykład kwantyfikatorów zaborczych ani grup atomowych, a lookbehind może mieć dowolną długość.

Flagi zmieniają sposób czytania wzorca. g znajduje wszystkie dopasowania, a nie tylko pierwsze, i pomija różnicę między wielkimi i małymi literami, m sprawia, że ^ i $ dotyczą każdego wiersza, a s pozwala kropce dopasować znak nowego wiersza. u czyta tekst jako znaki Unicode zamiast jednostek UTF-16, a v to ostrzejsza wersja u z ECMAScript 2024 z operacjami na zbiorach w klasach znaków. y wymaga, by każde dopasowanie zaczynało się dokładnie tam, gdzie skończyło się poprzednie, a d zapisuje pozycje grup.

Nawiasy przechwytują to, co dopasowały, i są numerowane według nawiasu otwierającego, od lewej. (?<name>…) nadaje grupie nazwę, a (?:…) grupuje bez przechwytywania. W zamianie $1 oznacza grupę 1, $<name> grupę nazwaną, $& całe dopasowanie, a $$ znak dolara. Bez flagi g zamieniane jest tylko pierwsze dopasowanie.

Niektóre wzorce działają bardzo długo, na przykład (a+)+$ dla długiego ciągu liter a zakończonego innym znakiem. Silnik sprawdza wtedy kombinacje, których liczba rośnie wykładniczo wraz z długością tekstu; to tak zwane katastrofalne nawracanie (backtracking). Tutaj wyszukiwanie działa w osobnym wątku, który jest zatrzymywany po dwóch sekundach, więc strona się nie zawiesza. W programie na serwerze ten sam wzorzec może stać się zagrożeniem bezpieczeństwa (ReDoS).

Pozycje są liczone w jednostkach UTF-16, tak jak w JavaScripcie, więc emoji liczy się podwójnie. Puste dopasowanie, na przykład ^ lub \b, jest oznaczone cienką kreską. Twój tekst nigdy nie opuszcza przeglądarki.

Źródła

Jak sprawdzamy narzędzia