Sari la conținut

Tester și Validator Regex Online Gratuit - Testează Modele Instant

Testează și validează expresii regulate online cu evidențiere în timp real. Tester de modele regex gratuit cu validare sintaxă, rezultate de potrivire și funcționalitate de salvare. Testează regex acum!

Tester Model Regex

Rezultate Potrivire

Introduceți un model și un text de testat pentru a vedea rezultatele

Salvare Model

Modele Salvate

Încă nu sunt modele salvate

Ghid Simboluri Regex

.Potrivește orice caracter cu excepția liniei noi
\dPotrivește orice cifră (0-9)
\DPotrivește orice caracter care nu este cifră
\wPotrivește orice caracter de cuvânt (a-z, A-Z, 0-9, _)
\WPotrivește orice caracter care nu este de cuvânt
\sPotrivește orice caracter de spațiu
\SPotrivește orice caracter care nu este spațiu
^Potrivește începutul liniei
$Potrivește finalul liniei
*Potrivește 0 sau mai multe caractere precedente
+Potrivește 1 sau mai multe caractere precedente
?Potrivește 0 sau 1 din caracterul precedent
{n}Potrivește exact n caractere precedente
{n,}Potrivește cel puțin n caractere precedente
{n,m}Potrivește între n și m caractere precedente
[abc]Potrivește oricare din caracterele din paranteze
[^abc]Potrivește orice caracter care nu este în paranteze
(abc)Grupează mai multe simboluri și capturează potrivirea
a|bPotrivește fie a, fie b
\bPotrivește poziția de graniță a unui cuvânt
Calculator de încărcare...
📚

Documentație

Ce este un tester de expresii regulate

Un tester de expresii regulate este un instrument care verifică o expresie regulată în raport cu un fragment de text și afișează ce se potrivește. O expresie regulată, sau regex, este o secvență scurtă de caractere care descrie un tipar în text, precum „trei cifre consecutive” sau „orice cuvânt care începe cu literă majusculă”. Acest validator de expresii regulate permite introducerea unui tipar și a unui text de test, apoi afișează imediat potrivirile evidențiate, fără scriere de cod.

Expresiile regulate sunt utilizate în multe limbaje de programare pentru a căuta text, a verifica dacă datele introduse de utilizator au formatul corect și a extrage anumite fragmente dintr-un bloc mai mare de text. Sintaxa este compactă, dar poate fi ușor scrisă greșit, astfel că testarea unui tipar înainte de folosirea lui într-un program ajută la identificarea timpurie a erorilor.

Cum se testează online o expresie regulată

  1. Introduceți un tipar. Introduceți expresia regulată în câmpul pentru tipar. Instrumentul verifică sintaxa pe măsură ce utilizatorul scrie și afișează un mesaj de eroare dacă tiparul nu este valid, de exemplu dacă o paranteză pătrată sau rotundă nu este închisă.
  2. Alegeți indicatorii. Indicatorii schimbă modul în care este aplicat tiparul (vedeți mai jos).
  3. Introduceți textul de test. Scrieți sau lipiți textul în care doriți să căutați, în caseta pentru text de test.
  4. Citiți rezultatele. Potrivirile sunt evidențiate în text, iar instrumentul indică numărul lor. Dacă există text de test, acesta indică și dacă tiparul se potrivește întregului text, de la început până la sfârșit, sau doar unei părți.
  5. Salvați un tipar. Un tipar poate fi stocat împreună cu o etichetă scurtă, pentru a fi reutilizat ulterior. Tiparele salvate sunt păstrate în browser, nu pe un server, astfel că apar doar pe același dispozitiv și în același browser.
  6. Copiați rezultatele. Textul identificat sau tiparul propriu-zis poate fi copiat în clipboard printr-un singur clic.

Indicatorii expresiilor regulate

Un indicator este o singură literă adăugată după un tipar, care îi schimbă comportamentul. Acest instrument acceptă patru indicatori, separat sau combinați:

IndicatorDenumireEfect
gGlobalGăsește toate potrivirile din text, în loc să se oprească la prima.
iInsensibil la litere mari și miciIgnoră diferențele dintre literele majuscule și minuscule.
mMultilinieFace ca ^ și $ să se potrivească începutului și sfârșitului fiecărei linii, nu doar începutului și sfârșitului întregului text. Schimbă locurile în care sunt găsite potrivirile, dar nu și verificarea întregului text descrisă mai jos.
sPunctuați totFace ca . să se potrivească și caracterelor de linie nouă.

Indicatorii pot fi combinați, de exemplu gi pentru global și insensibil la litere mari și mici sau gms pentru global, multilinie și punct pentru toate caracterele.

Cum găsește instrumentul potrivirile

Motorul de potrivire caută întotdeauna fiecare apariție a tiparului în text, motiv pentru care numărarea potrivirilor se comportă ca și cum indicatorul global ar fi activ, chiar și atunci când nu este selectat din lista derulantă. Fiecare potrivire este înregistrată împreună cu poziția și lungimea sa, apoi textul original este împărțit în fragmente potrivite și nepotrivite, pentru ca potrivirile să poată fi evidențiate.

Pentru a verifica dacă un tipar se potrivește întregului text, instrumentul încadrează tiparul într-un grup fără captură și îl ancorează: ^(?:pattern)$. Gruparea este importantă deoarece | (alternanța) are prioritate mai mică decât ancorele. Fără grup, un tipar precum cat|dog ancorat ca ^cat|dog$ ar însemna de fapt „începe cu cat sau se termină cu dog”, ceea ce nu este același lucru cu „întregul text este cat sau dog”.

Această verificare elimină și indicatorul pentru text multilinie. Cu m activat, ^ și $ se potrivesc la fiecare întrerupere de linie, astfel încât testul ancorat ar răspunde la întrebarea „se potrivește vreuna dintre linii?”, nu la „se potrivește întregul text?”. Instrumentul elimină m pentru această verificare și păstrează i și s, deoarece acestea schimbă ceea ce potrivește tiparul, nu locul în care se află ancorele. Prin urmare, răspunsul se referă întotdeauna la textul complet, inclusiv la întreruperile de linie.

Exemplu rezolvat

Tipar: \d+ (una sau mai multe cifre), indicator: g, text de test: Room 12 has 5 chairs.

  • Potriviri găsite: 12 și 5, astfel încât numărul potrivirilor este 2.
  • Verificarea întregului text: tiparul nu se potrivește întregului text, deoarece acesta conține și litere, și spații.

Dacă textul de test este schimbat în 12345, același tipar se potrivește întregului șir, astfel încât verificarea întregului text returnează adevărat.

Referință pentru sintaxa expresiilor regulate

Potrivirea caracterelor

SimbolSemnificațieExempluPotriviri
.Orice caracter, cu excepția unei linii noia.c„abc”, „adc”, „a1c”
\dOrice cifră, de la 0 la 9\d{3}"123", "456"
\DOrice caracter care nu este cifră\D+„abc”, „xyz”
\wOrice literă, cifră sau caracter de subliniere\w+„abc123”, „test_123”
\WOrice caracter care nu este literă, cifră sau caracter de subliniere\W+"!@#"
\sOrice caracter de spațierea\sb„a b”
\SOrice caracter care nu este caracter de spațiere\S+„abc”

Ancore de poziție

SimbolSemnificațieExempluPotriviri
^Începutul unei linii^abc„abc” la începutul unei linii
$Sfârșitul unei liniiabc$„abc” la sfârșitul unei linii
\bO limită de cuvânt\bword\b„word” ca întreg cuvânt

Cuantificatori

SimbolSemnificațieExempluPotriviri
*Zero sau mai multe apariții ale elementului anteriora*b„b”, „ab”, „aab”
+Una sau mai multe apariții ale elementului anteriora+b„ab”, „aab”
?Zero sau o apariție a elementului anteriorcolou?r„color”, „colour”
{n}Exact n apariții ale elementului anteriora{3}„aaa”
{n,}Cel puțin n apariții ale elementului anteriora{2,}„aa”, „aaa”
{n,m}Între n și m apariții ale elementului anteriora{2,4}„aa”, „aaa”, „aaaa”

Seturi de caractere și grupuri

SimbolSemnificațieExempluPotriviri
[abc]Orice caracter din lista aflată între paranteze[aeiou]orice vocală individuală
[^abc]Orice caracter care nu este menționat între paranteze[^aeiou]orice caracter care nu este vocală
(abc)Grupează caracterele și capturează potrivirea(abc)+„abc”, „abcabc”
a\bSe potrivește cu a sau bcat\

Mai sunt utile de cunoscut două funcții. O anticipare pozitivă, scrisă a(?=b), potrivește „a” doar când este urmat de „b”, fără a include „b” în potrivire. O verificare retrospectivă, scrisă (?<=a)b, potrivește „b” doar când apare imediat după „a”.

Exemple de tipare uzuale

Aceste tipare pot fi lipite în instrument pentru a vedea cum se comportă în raport cu un text de exemplu.

Numai cifre: ^\d+$ potrivește un șir alcătuit în întregime din cifre, precum „48210”, și respinge orice conține o literă sau un spațiu.

Adresă de e-mail (verificare de bază): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ potrivește adrese în forma name@domain.tld, precum „user@example.com”. Este o verificare simplă, nu formatul complet al adreselor de e-mail definit de standardele internetului, astfel că unele adrese neobișnuite, dar valide, vor fi respinse.

Număr de telefon din SUA: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ potrivește formate precum „(123) 456-7890”, „123-456-7890” și „1234567890”.

Dată în formatul YYYY-MM-DD: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ verifică dacă luna este între 01 și 12, iar ziua între 01 și 31. Nu verifică dacă ziua este validă pentru luna respectivă, astfel că acceptă „2024-02-30”, deși februarie nu are niciodată 30 de zile.

Întrebări frecvente

Ce este o expresie regulată? O expresie regulată este o secvență de caractere care definește un tipar de căutare. Este utilizată pentru a căuta, potrivi și edita text în majoritatea limbajelor de programare și a editoarelor de text.

Ce face indicatorul global? Fără indicatorul global, o căutare se oprește de obicei după prima potrivire. Cu indicatorul global (g), căutarea continuă și raportează fiecare potrivire din text. Acest instrument caută întotdeauna toate potrivirile atunci când le numără, indiferent de indicatorul ales.

Cum potrivesc un punct literal sau un alt caracter special? Puneți o bară oblică inversă înaintea lui. De exemplu, \. potrivește un punct literal în loc de „orice caracter”, ceea ce înseamnă un . neprecedat de caracter de escape.

Care este diferența dintre .* și .*?? .* este lacom și potrivește cât mai multe caractere posibil. .*? este leneș și potrivește cât mai puține caractere posibil, permițând totodată restului tiparului să se potrivească.

De ce spune instrumentul că textul nu se potrivește integral când fiecare linie se potrivește? Verificarea întregului text tratează textul ca pe un singur șir, inclusiv întreruperile de linie. Un tipar precum \d+ potrivește separat fiecare linie din 12 și 34, dar cele două linii împreună cu întreruperea dintre ele nu sunt alcătuite în întregime din cifre, astfel că răspunsul pentru întregul text este nu. Pentru a potrivi un text care se întinde pe mai multe linii, tiparul trebuie să includă și întreruperile de linie, de exemplu prin [\s\S]+.

Cum verific dacă un șir întreg se potrivește cu un tipar, nu doar o parte a lui? Adăugați ^ la începutul tiparului și $ la sfârșit, de exemplu ^[0-9]+$ pentru un șir alcătuit numai din cifre.

Acest tester potrivește regulile expresiilor regulate din alte limbaje de programare? Acest instrument utilizează motorul de expresii regulate inclus în JavaScript. Cea mai mare parte a sintaxei de bază, precum clasele de caractere și cuantificatorii, este comună mai multor limbaje, inclusiv Python, Java și Perl, dar există unele diferențe, astfel că nu este garantat ca un tipar care funcționează aici să se comporte identic peste tot.

Referințe

  1. "Regular expression." Wikipedia, Fundația Wikimedia. https://en.wikipedia.org/wiki/Regular_expression
  2. MDN Web Docs. "Regular expressions." Mozilla. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  3. Friedl, J. E. F. (2006). Mastering Regular Expressions. O’Reilly Media.