← Toate instrumentele

Tester de Expresii Regulate

Construiește, testează și depanează expresii regulate live pe propriul tău text, direct în browser. Învață clase de caractere, cuantificatori, ancore, grupuri și flag-uri.

Regex Tester: construiește și depanează tipare pe propriul tău text

O expresie regulată este un mic limbaj pentru a descrie forma unui text. În loc să întrebi „este exact acest cuvânt aici?", un regex îți permite să întrebi „există un șir care arată așa?" Asta este ceea ce îl face puternic pentru găsirea, validarea, extragerea și înlocuirea textului în editoare de cod, fișiere de jurnal, câmpuri de formular și scripturi. Este și motivul pentru care este ușor de greșit, pentru că un tipar care pare corect în minte poate, în tăcere, să prindă prea mult, prea puțin sau nimic.

De aceea testarea interactivă bate ghicitul. Când scrii un tipar și vezi potrivirile aprinzându-se pe un text real de eșantion, primești feedback instantaneu: vezi ce a fost prins, ce a scăpat și ce grup de captare a preluat ce bucată. Regex Tester-ul nostru rulează integral în browserul tău. Tiparul și textul tău de eșantion nu părăsesc niciodată pagina, așa că poți lipi linii de jurnal, e-mailuri sau date de producție fără să trimiți nimic către un server.

Filtru cyan strălucitor prinzând token-uri aurii specifice dintr-un flux de date pe fundal indigo închis
Un regex acționează ca un filtru, selectând doar token-urile care se potrivesc cu tiparul tău.

Elementele de bază care merită cunoscute

Majoritatea tiparelor de zi cu zi sunt asamblate dintr-un set mic de piese. Învață-le pe acestea și vei putea citi majoritatea regex-urilor pe care le întâlnești în lumea reală.

Clasele de caractere descriu un set de caractere permise. [aeiou] se potrivește cu orice vocală, [0-9] se potrivește cu o cifră, iar [a-zA-Z] se potrivește cu o literă. Un circumflex în interiorul parantezelor drepte neagă setul, deci [^0-9] înseamnă „orice caracter care nu este o cifră". Prescurtările economisesc scriere: \d este o cifră, \w este un caracter de cuvânt (litere, cifre, underscore), \s este spațiu alb, iar punctul . se potrivește cu aproape orice caracter individual.

Cuantificatorii spun de câte ori se poate repeta piesa anterioară. * înseamnă zero sau mai multe, + înseamnă unu sau mai multe, iar ? înseamnă zero sau unu (opțional). Pentru numere exacte, {3} înseamnă exact trei, iar {2,4} înseamnă de la două la patru. Astfel \d{4} se potrivește cu un an de patru cifre, iar colou?r se potrivește cu ambele forme de scriere.

Ancorele fixează un tipar la o poziție, nu la un caracter. ^ se potrivește cu începutul textului, $ se potrivește cu sfârșitul, iar \b marchează o limită de cuvânt. Tiparul ^Error se potrivește doar cu liniile care încep cu „Error", exact ce îți dorești când scanezi jurnale.

Grupurile înfășoară o parte a tiparului în paranteze rotunde, atât pentru a aplica un cuantificator mai multor caractere odată, cât și pentru a captura textul potrivit în vederea reutilizării. În (\d{4})-(\d{2})-(\d{2}) fiecare grup captează o componentă de dată pe care o poți extrage ulterior. Alternanța cu bara verticală acționează ca un „sau": cat|dog|fish se potrivește cu oricare dintre cele trei cuvinte.

Tipare la care apelezi în mod real

Câteva sarcini recurente acoperă majoritatea muncii reale. Pentru a prinde ceva ce seamănă cu un e-mail, [\w.+-]+@[\w-]+\.[\w.-]+ este un punct de plecare pragmatic; validarea completă a e-mailului conform specificației formale este notoriu de complicată, iar un tipar mai permisiv este de obicei alegerea corectă pentru a evidenția candidați, nu pentru a respinge utilizatori.

Pentru numere, \d+ prinde secvențe de cifre, în timp ce -?\d+(\.\d+)? se potrivește cu numere negative și zecimale opționale. Pentru a elimina spațiile albe de la început și sfârșit, potrivești ^\s+|\s+$ și le înlocuiești cu nimic. Pentru a găsi cuvinte duplicate, tiparul cu referință inversă \b(\w+)\s+\1\b se potrivește cu un cuvânt urmat de el însuși, unde \1 se referă înapoi la primul grup capturat.

Cuvinte selectate strălucind auriu și evidențiate într-un râu de particule asemănătoare textului, cyan, pe fundal indigo bleumarin
Evidențierea live arată exact ce segmente din textul tău se potrivesc cu un tipar.

Flag-urile schimbă modul în care funcționează potrivirea

Flag-urile sunt comutatoare care modifică întregul tipar. Flag-ul global (g) găsește fiecare potrivire, nu doar prima, ceea ce îți dorești când evidențiezi toate aparițiile. Flag-ul insensibil la majuscule (i) face ca error să se potrivească atât cu „Error", cât și cu „ERROR". Flag-ul multiline (m) schimbă ^ și $ astfel încât să se potrivească la începutul și sfârșitul fiecărei linii, nu doar al întregului text, ceea ce este esențial pentru lucrul linie cu linie în jurnale. Alte flag-uri utile includ s (dotall, permițând punctului să se potrivească și cu newline-uri) și u pentru gestionarea completă Unicode.

Variantele diferă ușor în funcție de limbaj

Regex este o familie de dialecte, nu un standard fix unic. JavaScript, Python, PCRE (PHP), Java, .NET, Go și Rust cad de acord asupra sintaxei de bază de mai sus, dar diverg la margini: suportul pentru lookbehind, sintaxa grupurilor denumite ((?<name>...) versus (?P<name>...)), escape-urile de proprietăți Unicode și ce flag-uri există variază toate. Un tipar care funcționează într-un motor poate avea nevoie de o mică ajustare în altul, deci merită să testezi în varianta cu care lucrezi cu adevărat. Când ai reglat un tipar, celelalte instrumente pentru dezvoltatori și instrumente pentru text ale noastre te pot ajuta cu munca din jur, de curățare, codificare și transformare a datelor pe care tocmai le-ai potrivit.

Întrebări frecvente

Textul meu este trimis către un server?

Nu. Regex Tester-ul rulează integral în browserul tău. Tiparul și textul tău de eșantion rămân pe dispozitivul tău și nu sunt niciodată încărcate, deci este sigur să lipești date sensibile.

Ce variantă de regex folosește acest instrument?

Folosește motorul de regex JavaScript integrat în browserul tău. Sintaxa de bază se potrivește cu ce cunoști din majoritatea limbajelor, deși unele funcții avansate diferă ușor de PCRE, Python sau .NET.

Care este diferența dintre potrivirea lacomă și cea leneșă?

Implicit, cuantificatorii sunt lacomi și prind cât mai mult text posibil. Adăugarea unui semn de întrebare îi face leneși, astfel încât prind cât mai puțin posibil. De exemplu, tiparul punct-asterisc este lacom, în timp ce punct-asterisc-semn de întrebare este leneș.

Cum potrivesc un caracter special literal?

Îl escapezi cu o bară oblică inversă. Pentru a potrivi un punct real, scrii bară oblică inversă urmată de punct. Aceeași regulă se aplică altor meta-caractere, precum parantezele, parantezele drepte, semnul plus și semnul întrebării.

De ce tiparul meu nu se potrivește cu nimic?

Cauzele frecvente sunt un flag global lipsă, ancore care fixează potrivirea în poziția greșită, un caracter special neescapat sau cuantificatori lacomi care depășesc limita la care te așteptai. Testează bucată cu bucată pentru a găsi vinovatul.

Pot captura părți din potrivire?

Da. Înfășoară o secțiune a tiparului în paranteze rotunde pentru a crea un grup de captare. Fiecare grup este raportat separat, ceea ce îți permite să extragi câmpuri precum anul, luna și ziua dintr-o dată.