CodeKitHub
Instrumente text

Testor de Regex Online

Ultima actualizare:

Un testor de regex îți permite să scrii o expresie regulată și să o vezi potrivindu-se instant cu text real, cu grupuri de captură și flag-uri vizibile pe măsură ce scrii — acesta rulează motorul JavaScript descris în ghidul de Expresii Regulate de la MDN, aceeași sintaxă folosită de Node.js și de fiecare browser. Excelent pentru construirea și depanarea tiparelor înainte de a le pune în cod.

//

    Ce este acest instrument?

    O expresie regulată (regex) este un limbaj compact de tipare pentru găsirea, validarea și extragerea textului: un tipar de email poate valida intrarea dintr-un formular, \d{4}-\d{2}-\d{2} găsește date, iar grupurile de captură extrag părțile de care ai nevoie. Aproape fiecare limbaj de programare și editor suportă regex.

    Acest testor folosește motorul de regex JavaScript — același care rulează în Node.js și în fiecare browser — deci tiparele pe care le construiești aici se comportă identic în codul tău JavaScript/TypeScript. Majoritatea tiparelor funcționează neschimbate și în Python, Java și Go.

    De ce să-l folosești?

    • Feedback live: potrivirile se evidențiază cu galben pe măsură ce scrii tiparul.
    • Grupuri de captură afișate pentru fiecare potrivire — vezi exact ce va conține $1 și $2.
    • Suport complet pentru flag-uri: g (toate potrivirile), i (ignoră majuscule/minuscule), m (multilinie), s (punctul potrivește și linia nouă), u (unicode).
    • Mesaje de eroare clare atunci când tiparul are o greșeală de sintaxă.
    • Gratuit și privat — tiparul și textul nu părăsesc niciodată browserul tău.

    Cum se folosește

    1. Scrie tiparul tău între cele două caractere / (nu trebuie să escapezi barele oblice tu însuți).
    2. Ajustează flag-urile din căsuța mică de după a doua / — implicitul g găsește toate potrivirile.
    3. Lipește textul tău de test mai jos.
    4. Potrivirile se evidențiază instant; grupurile de captură sunt listate dedesubt.
    5. Dacă tiparul este invalid, mesajul de eroare explică ce este greșit.

    Exemplu

    Intrare

    Tipar: (\w+)@(\w+)\.com
    Text de test: Contactează alice@example.com sau bob@test.com

    Rezultat

    ✓ 2 potriviri
    #1 grupuri: $1=alice  $2=example
    #2 grupuri: $1=bob  $2=test

    Parantezele creează grupuri de captură pe care le poți referenția ca $1 și $2 în înlocuiri.

    Sfaturi practice

    • Validezi o intrare de email? ^[^\s@]+@[^\s@]+\.[^\s@]+$ este un tipar permisiv, care prinde greșelile evidente fără a respinge adrese valide, dar neobișnuite — conformitatea completă cu RFC 5322 necesită o bibliotecă, nu o singură linie.
    • Extragi parametri de interogare dintr-un URL: [?&]([^=]+)=([^&]*) cu flag-ul g, apoi citește $1/$2 pentru fiecare potrivire, în loc să divizezi manual după & și =.
    • Ești pe cale să folosești un tipar în .replace()? Testează-l aici mai întâi — ceea ce se evidențiază este exact ceea ce va atinge .replace(), inclusiv grupurile de captură.
    • Parsezi jurnale multilinie (potrivind o marcă temporală la începutul fiecărei linii)? Adaugă flag-ul m, astfel încât ^ și $ să ancoreze pe fiecare linie, nu pe întregul șir.
    • Ai copiat un tipar din Python sau PHP și nu se potrivește aici? Verifică grupurile numite (?P<name>...) — JavaScript folosește (?<name>...), fără P — sau cuantificatorii posesivi (++, *+), care nu există în regex-ul JavaScript.

    Un testor de regex JavaScript, nu unul generic

    Acest instrument rulează motorul RegExp integrat al JavaScript — exact calea de cod din spatele lui str.match(pattern) sau pattern.test(str) într-o consolă de browser sau Node.js. Este diferit de testarea împotriva PCRE (ceea ce folosește PHP, și ceea ce implicit folosesc mulți testori „universali” de regex) sau modulul re din Python: JavaScript nu are cuantificatori posesivi sau grupuri atomice, iar grupurile de captură numite folosesc (?<name>...) în loc de (?P<name>...) din PCRE/Python.

    Dacă ești pe cale să livrezi un tipar în JS sau TypeScript — validare de formular, un matcher de rută, un parser de jurnal — testarea aici înseamnă zero neconcordanță de variantă: ceea ce se evidențiază pe această pagină este exact ceea ce potrivește new RegExp(pattern, flags) la rulare.

    Unde se leagă de fluxurile de lucru reale

    Un test de regex rareori stă singur. Secvența obișnuită: confirmă tiparul aici, rulează efectiv .replace() în codul tău, apoi compară textul înainte/după pentru a te asigura că substituția a făcut exact ce te așteptai și nimic altceva.

    Extragerea de date structurate cu grupuri de captură alimentează adesea direct JSON — formatează rezultatul extras pentru a verifica dacă s-a parsat așa cum te așteptai.

    Compară Text · Formator JSON

    Întrebări frecvente

    Ce variantă de regex folosește acest testor?

    JavaScript (ECMAScript), motorul din fiecare browser și din Node.js. Sintaxa de bază este portabilă, dar unele caracteristici diferă între limbaje — de exemplu, suportul pentru lookbehind și sintaxa grupurilor numite variază în Python și Java.

    De ce tiparul meu găsește doar prima potrivire?

    Lipsește flag-ul g (global). Fără g, un regex se oprește după prima potrivire. Acest instrument folosește implicit g — verifică dacă nu l-ai eliminat.

    De ce . nu se potrivește cu întreruperile de linie?

    Implicit, . se potrivește cu orice caracter, cu excepția liniilor noi. Adaugă flag-ul s (dotall) pentru a face . să se potrivească și cu liniile noi, sau folosește [\s\S] ca alternativă portabilă.

    Ce înseamnă rezultatele grupurilor de captură?

    Fiecare pereche de paranteze din tiparul tău captează textul cu care s-a potrivit. $1 este primul grup, $2 al doilea, și așa mai departe — acestea sunt cele pe care le referențiezi în operațiile de înlocuire și codul de extracție.

    De ce este regex-ul meu lent sau blocat?

    Probabil backtracking catastrofal, cauzat de cuantificatori imbricați precum (a+)+ pe o intrare care nu se potrivește. Rescrie tiparul pentru a evita repetiția ambiguă. Acest instrument limitează la 1000 de potriviri, pentru a rămâne receptiv.

    Instrumente similare