Tester wyrażeń regularnych
Wpisz wzorzec i tekst do sprawdzenia, a każde dopasowanie zostanie podświetlone już podczas pisania.
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)
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.