Konwertery

Tester wyrażeń regularnych (regex) online z podglądem dopasowań

Sprawdź wyrażenie regularne na własnym tekście: podświetlone dopasowania, grupy i grupy nazwane, podmiana z $1 i ochrona przed zawieszeniem przy wolnych wzorcach.

Obliczenia wykonuje Twoja przeglądarka. Wpisane dane nie są wysyłane na serwer.

//

Podgląd dopasowań
Kontakt: jan.kowalski@example.com, biuro@firma.pl
Nieprawidłowy: ktoś@, @brak.pl

Flagi wyrażeń regularnych w JavaScripcie

Flagi zmieniają sposób wyszukiwania. MDN opisuje je następująco:

FlagaZnaczenie
gwyszukiwanie globalne: wszystkie dopasowania, nie tylko pierwsze
ibez rozróżniania wielkości liter
m^ i $ dopasowują początek i koniec każdego wiersza
skropka dopasowuje także znak nowej linii
uwzorzec jako ciąg punktów kodowych Unicode
vrozszerzony tryb Unicode
ydopasowanie „przyklejone” do bieżącej pozycji
dzwracanie pozycji dopasowań podciągów (indices)

Grupy i podmiana

Nawiasy tworzą grupę przechwytującą, do której w podmianie odwołujesz się przez $1,$2 itd. Grupa nazwana (?<nazwa>...) jest dostępna jako$<nazwa>, a $& wstawia całe dopasowanie. Tak samo działa metodaString.prototype.replace, której używa tester. Tabela pod podglądem pokazuje każde dopasowanie z pozycją w tekście i zawartością grup.

Wolne wzorce i ReDoS

OWASP opisuje ReDoS jako atak, który wykorzystuje to, że większość silników wyrażeń regularnych może w skrajnych przypadkach działać bardzo wolno, w czasie rosnącym wykładniczo względem długości tekstu. Przyczyną jest mechanizm nawrotów (backtracking). Przykładem podatnego wzorca jest^(a+)+$. Tester uruchamia wyrażenie w osobnym wątku przeglądarki i przerywa go po sekundzie, więc taki wzorzec nie zawiesi strony. Wyświetli za to ostrzeżenie.

Wyniki pokazują do 1000 dopasowań. To ograniczenie podglądu, a nie silnika: przy większej liczbie tester informuje, że lista jest niepełna.

Najczęstsze pytania

Jakiej składni wyrażeń regularnych używa tester?

Składni JavaScriptu, czyli silnika wbudowanego w Twoją przeglądarkę. Wyrażenia w innych językach, np. PCRE w PHP albo grep -E, mają część konstrukcji wspólną, ale nie wszystkie.

Jak odwołać się do grupy w podmianie?

Grupę numerowaną wstawiasz jako $1, $2 itd., a nazwaną, zdefiniowaną jako (?<nazwa>...), jako $<nazwa>. Całe dopasowanie to $&.

Dlaczego tester przerwał sprawdzanie?

Niektóre wzorce, np. (a+)+$, przy pewnych tekstach działają bardzo długo. OWASP opisuje to jako atak ReDoS: czas działania rośnie wykładniczo względem długości tekstu. Tester liczy dopasowania w osobnym wątku i przerywa go po sekundzie.

Źródła

  1. Regular expressions, MDN
  2. String.prototype.replace(): Specifying a string as the replacement, MDN
  3. Regular expression Denial of Service – ReDoS, OWASP
  • Konwertery

    Base64

    Zakoduj tekst lub plik w Base64 albo zdekoduj Base64 z powrotem, z obsługą polskich znaków (UTF-8), wariantu base64url i adresów data:.

  • Konwertery

    Timestamp Unix

    Zamień znacznik czasu Unix (sekundy, milisekundy, mikro- lub nanosekundy) na datę w dowolnej strefie czasowej albo datę na znacznik czasu.

  • Konwertery

    Kodowanie URL

    Zakoduj tekst do bezpiecznej postaci w adresie URL (np. spacja jako %20, ą jako %C4%85) albo zdekoduj zakodowany adres i rozłóż go na części oraz parametry.

  • Konwertery

    Systemy liczbowe

    Wpisz liczbę w dowolnym z czterech systemów, a konwerter pokaże ją w pozostałych, także dla bardzo dużych liczb i w kodzie uzupełnień do dwóch dla 8–64 bitów.

Niezbędne (zawsze włączone). Pamięć przeglądarki przechowuje wybrany motyw, polubione artykuły i Twoją decyzję o zgodzie. Nie używamy do tego plików cookies.