Edytor

Oczekiwanie na dane wejściowe lub wykonanie wyrażenia regularnego…

Akcje

?
?
?

O nas Tester wyrażeń regularnych online

Wklej tekst, napisz wzorzec regex, przełącz flagi i natychmiast zobacz dopasowania. Ten tester używa tego samego silnika RegExp co nowoczesne środowiska wykonawcze JavaScript, więc to, co widzisz tutaj, otrzymasz w kodzie frontendowym, skryptach Node.js lub walidacji po stronie serwera. Nazwane grupy przechwytujące, lookaroundy i tryb Unicode są obsługiwane, gdy środowisko wykonawcze je wspiera.

Dlaczego warto używać tego testera wyrażeń regularnych

  • Dopasowanie w czasie rzeczywistym z opcjonalnym trybem "na żywo", który uruchamia się ponownie podczas pisania
  • Ustrukturyzowana lista dopasowań z indeksem początkowym, końcowym, wartością i nazwanymi grupami przechwytującymi
  • Pełne wsparcie składni RegExp JavaScript/ECMAScript (ten sam silnik co w twoim środowisku JS)
  • Kontrola flag: g, i, m, s, u, y – łącz i eksperymentuj bezpiecznie
  • Podstawowy wgląd w wydajność z czasem wykonania na przebieg w milisekundach
  • Podsumowanie wyjściowe tylko w formie tekstowej do szybkiego kopiowania/wklejania do zgłoszeń, dokumentacji lub komunikatów commitów
  • Doskonałe do nauki: prototypuj wzorce bez uruchamiania pełnego projektu lub zestawu testów
  • Idealne do codziennych zadań: parsowanie logów, walidacja, ekstrakcja URL/ID, szybkie czyszczenie danych
  • Lista wyników jest delikatnie ograniczona, aby uniknąć zawieszenia interfejsu przy dopasowywaniu dużych tekstów

🔧 Jak używać testera wyrażeń regularnych for regex-tester

1

1. Wklej lub wpisz swój tekst testowy

Dodaj tekst, przez który chcesz przeszukiwać: logi, fragmenty, kawałki CSV, HTML, JSON, cokolwiek, co jest zwykłym tekstem.

2

2. Napisz swój wzorzec wyrażenia regularnego

Wprowadź wyrażenie regularne **bez otaczających ukośników**. Na przykład: <code>\b\w+@\w+\.\w+</code> dla podstawowego wzorca przypominającego email, lub <code>(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})</code> z nazwanymi grupami.

3

3. Ustaw flagi (g, i, m, s, u, y)

Przełączaj flagi takie jak <code>g</code> (globalne), <code>i</code> (bez uwzględniania wielkości liter) lub <code>m</code> (wielowierszowe). W tle tester buduje <code>new RegExp(pattern, flags)</code> dokładnie tak, jak robi to JavaScript.

4

4. Sprawdź dopasowania i grupy

Przejrzyj każde dopasowanie z jego indeksem, opcjonalnym indeksem końcowym i grupami przechwytującymi. Nazwane grupy pojawiają się jako mapa podobna do JSON, abyś mógł je skopiować do zestawów testowych, parserów lub dokumentacji.

5

5. Skopiuj podsumowanie

Użyj tekstowego podsumowania jako szybkiego raportu: zawiera listę dopasowań z indeksami i grupami, gotową do wklejenia do zgłoszeń, komentarzy przeglądu kodu lub ściągawek.

Szczegóły składni i silnika wyrażeń regularnych

Klasy znaków i podstawy

Podstawowe elementy budulcowe obsługiwane przez silnik RegExp JavaScript.

WzorzecZnaczeniePrzykład
.Dowolny znak z wyjątkiem znaków nowej linii (chyba że flaga <code>s</code>)<code>a.c</code> → pasuje do <code>abc</code>
\d, \w, \sCyfry, znaki słowne, białe znaki<code>\d+</code> → <code>123</code>
\D, \W, \SZanegowane wersje powyższych<code>\S+</code> → ciągi niebędące białymi znakami
[abc]Zbiór znaków<code>[aeiou]</code> → pojedyncza samogłoska
[^abc]Zbiór zanegowany<code>[^0-9]</code> → nie-cyfra
^, $Początek i koniec wejścia (lub linii z <code>m</code>)<code>^Hello</code>, <code>!$</code>

Kwantyfikatory

Powtórzenie poprzednich tokenów, z zachłannym i leniwym zachowaniem.

WzorzecZnaczeniePrzykład
?0 lub 1 raz<code>colou?r</code> → pasuje do <code>color</code> i <code>colour</code>
*0 lub więcej<code>a*b</code> → <code>b</code>, <code>aaab</code>
+1 lub więcej<code>\d+</code> → <code>1</code>, <code>123</code>
{n}Dokładnie n<code>a{3}</code> → <code>aaa</code>
{n,}Przynajmniej n<code>\d{3,}</code> → <code>123</code>, <code>1234</code>
{n,m}Pomiędzy n a m<code>a{2,4}</code> → <code>aa</code>, <code>aaa</code>, <code>aaaa</code>

Grupy, Lookaroundy i Nazwane Przechwytywania

Zaawansowane funkcje oferowane przez nowoczesne silniki JavaScript.

FunkcjaSkładniaPrzykład
Grupy przechwytujące(...)<code>(\d{3})-(\d{2})</code> → obszar + sufiks
Grupy nieprzechwytujące(?:...)<code>(?:https?|ftp)://</code>
Odwołania wsteczne\1, \2, ...<code>(\w)\1</code> → <code>aa</code>, <code>bb</code>
Asercje w przód(?=...), (?!...)<code>\w+(?=! )</code> → słowo przed <code>! </code>
Asercje w tył*(?<=...), (?<!...)<code>(?<=#)\w+</code> → tekst po <code>#</code> (*w nowoczesnych silnikach)
Grupy nazwane(?<name>...)<code>(?<year>\d{4})</code> → <code>groups.year</code> w wynikach

Flagi (Opcje)

Flagi testera odpowiadają bezpośrednio flagom JavaScript RegExp.

FlagaNazwaEfekt
gGlobalnaZnajdź wszystkie dopasowania zamiast tylko pierwszego
iIgnoruj wielkość literDopasowanie bez uwzględniania wielkości liter
mWielowierszowa<code>^</code> i <code>$</code> dopasowują granice wierszy
sDotAll<code>.</code> również dopasowuje znaki nowej linii
uUnicodeWłącza tryb Unicode i ucieczki właściwości w nowoczesnych silnikach
yPrzyklejonyDopasowanie tylko przy bieżącym indeksie (używane z <code>lastIndex</code>)

Wydajność i Bezpieczeństwo

Podstawowy silnik JavaScript wykonuje wyrażenia regularne synchronicznie. Aby zachować responsywność interfejsu, tester ogranicza liczbę zebranych dopasowań (np. pierwsze 500 trafień w trybie globalnym). Pomaga to uniknąć przeciążenia interfejsu, ale nie zastępuje pełnych audytów wydajności dla złożonych lub krytycznych wzorców.

Narzędzia Wyrażeń Regularnych w Linii Poleceń

Gdy Twój wzorzec działa tutaj, możesz ponownie użyć tego samego lub podobnego wyrażenia w terminalu, skryptach lub zadaniach CI:

Linux / macOS

Wyszukiwanie za pomocą grep (rozszerzone wyrażenia regularne)

grep -E 'pattern' file.txt

Znajdź linie pasujące do danego wzorca

Wyszukiwanie i zamiana za pomocą sed

sed -E 's/pattern/replacement/g' input.txt > output.txt

Zamiany wsadowe w plikach tekstowych

Windows / PowerShell

Wyszukiwanie wyrażeń regularnych w PowerShell

Select-String -Pattern '\d{3}-\d{2}-\d{4}' -Path logs.txt

Znajdź wzorce SSN w stylu amerykańskim w plikach dziennika (przykład)

Zamiana wyrażeń regularnych w PowerShell

(Get-Content input.txt) -replace 'old', 'new' | Set-Content output.txt

Proste zamiany oparte na wyrażeniach regularnych

Praktyczne Zastosowania Wyrażeń Regularnych

Tworzenie Stron i Aplikacji Frontend

  • Walidacja adresów e-mail, nazw użytkowników, slugów lub niestandardowych identyfikatorów w formularzach
  • Wyodrębnianie parametrów tras z adresów URL lub ścieżek
  • Szybkie prototypowanie wzorców do walidacji po stronie klienta
// Podstawowa walidacja podobna do e-mail
/^[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}$/i.test(email);
// Parametry trasy: /post/123
const match = pathname.match(/^\/post\/(\d+)/);

Dzienniki, Dane i Backend

  • Parsowanie znaczników czasu i poziomów z linii dziennika
  • Normalizacja białych znaków i czyszczenie nieuporządkowanego tekstu
  • Wyodrębnianie identyfikatorów, e-maili lub referencji z nieustrukturyzowanej treści
// Usuwanie powtarzających się białych znaków
const normalized = text.replace(/\s+/g, ' ').trim();
// Prosty dopasowywacz linii dziennika
const m = line.match(/\[(?<date>\d{4}-\d{2}-\d{2})] (?<level>INFO|ERROR): (?<msg>.*)/);

Czyszczenie Danych i Szybkie Skrypty

  • Usuwanie niechcianych tagów lub atrybutów HTML przed parsowaniem
  • Wyciąganie wszystkich adresów URL, e-maili lub identyfikatorów z długiego fragmentu tekstu
  • Przygotuj pola zestawu danych do importu do innego systemu

❓ Frequently Asked Questions

Dlaczego moje wyrażenie regularne niczego nie znajduje?

Typowe pułapki: 1) Niepoprawnie zapisane znaki specjalne (jak ., ?, +), 2) Zapomnienie flagi g przy oczekiwaniu wielu dopasowań, 3) Brak kotwic (^, $) lub granic słów (\b), 4) Używanie funkcji, których silnik JavaScript jeszcze nie obsługuje (jak niektóre lookbehind). Spróbuj uprościć wzorzec i stopniowo dodawać elementy.

⏱️Co oznacza czas wykonania (ms)?

Każde uruchomienie jest mierzone za pomocą performance.now(). Wartość jest przybliżonym pomiarem pojedynczego wykonania, jak długo trwało wykonanie wyrażenia regularnego na aktualnych danych. Przydaje się do wykrywania wyraźnie kosztownych wzorców, ale nie jest pełnym benchmarkiem ani gwarancją wydajności w produkcji.

🔍Jaka jest różnica między pierwszym dopasowaniem a trybem globalnym?

Bez flagi g JavaScript zwraca tylko **pierwsze** dopasowanie (jeśli istnieje). Z g tester używa input.matchAll() do zebrania **wszystkich** dopasowań (ograniczonych do bezpiecznego maksimum), włącznie z indeksami i grupami przechwytującymi. Używaj trybu globalnego, gdy zależy Ci na wielu wystąpieniach.

🌍Czy to obsługuje Unicode i sekwencje <code>\p{...}</code>?

Tak, gdy Twój silnik JavaScript to obsługuje. Włącz flagę u, aby przejść w tryb Unicode, który odblokowuje takie rzeczy jak \p{Letter} lub \p{Script=Greek} w nowoczesnych przeglądarkach i najnowszych wersjach Node.js.

⚠️Czy to może wykryć katastrofalne backtracking?

Tester może wskazywać na wolne wzorce poprzez czas wykonania, ale nie może całkowicie zapobiec katastrofalnemu backtrackingowi: podstawowy silnik nadal działa synchronicznie. Używaj tego narzędzia jako systemu wczesnego ostrzegania, a następnie testuj i przeglądaj złożone wzorce ostrożnie we własnym kodzie.

Pro Tips

Best Practice

Buduj swoje wyrażenie regularne małymi krokami. Zacznij od czegoś prostego, co działa, a następnie dodawaj kotwice, grupy i kwantyfikatory krok po kroku.

Best Practice

Używaj nazwanych grup przechwytujących (<code>(?<name>...)</code>) tam, gdzie to możliwe. Sprawiają, że Twoje dopasowania są samoopisujące i znacznie łatwiejsze do odczytania podczas przeglądów kodu.

Best Practice

Uważaj z <code>.*</code> i zagnieżdżonymi kwantyfikatorami. Mogą powodować intensywny backtracking na dużych danych. Uczyń wzorce bardziej specyficznymi lub ogranicz powtórzenia za pomocą <code>{n,m}</code>.

Best Practice

Podczas debugowania tymczasowo usuń flagę <code>g</code> i skup się na pierwszym dopasowaniu, aby uprościć model mentalny.

Additional Resources

Other Tools