Salt la conținut
Quaestio

Tester de regex

Introdu un model și un text pe care să-l testezi, iar fiecare potrivire este evidențiată pe măsură ce scrii.

Flaguri

Exemple

Folosește $1 sau $<name> pentru grupuri, $& pentru întreaga potrivire și $$ pentru semnul de dolar.

Elemente uzuale
.
orice caracter în afară de sfârșitul de rând
\d
o cifră 0–9
\w
o literă a–z, o cifră sau o linie de subliniere
\s
spațiu, tab sau sfârșit de rând
\D \W \S
opusul lui \d, \w și \s
\b
granița dintre un caracter de cuvânt și altul
^
începutul textului, sau al rândului cu m
$
sfârșitul textului, sau al rândului cu m
[abc] [a-z]
unul dintre caractere, sau un caracter din interval
[^abc]
niciunul dintre caractere
a|b
a sau b
(…)
grup de captură
(?:…)
grup fără captură
(?<name>…)
grup cu nume
\1 \k<name>
același text ca grupul 1 sau ca grupul numit name
*
de zero sau mai multe ori
+
o dată sau de mai multe ori
?
de zero ori sau o dată
{3} {2,5} {2,}
exact de 3 ori, de 2 până la 5 ori sau de cel puțin 2 ori
*? +? ??
de cât mai puține ori
(?=…)
urmat de
(?!…)
neurmat de
(?<=…) (?<!…)
precedat de, neprecedat de
\p{L}
o literă din orice sistem de scriere (necesită u sau v)
Încorporează

Încorporează instrumentul pe site-ul tău

Copiază codul și lipește-l acolo unde vrei să apară instrumentul, de exemplu într-un articol de blog sau pe pagina unei școli. Este gratuit, caseta nu are reclame, iar instrumentul calculează în browserul vizitatorului.

Cum funcționează

O expresie regulată este un model care descrie text. \d+ înseamnă una sau mai multe cifre, [a-z] o literă de la a la z, iar ^ începutul textului. Modelul este încercat pe text de la stânga la dreapta, iar fiecare loc în care se potrivește este o potrivire.

Testerul folosește motorul browserului tău, adică varianta de expresii regulate definită de standardul ECMAScript pentru JavaScript. Ea diferă de PCRE, Python și .NET în câteva privințe: de exemplu, nu există cuantificatori posesivi sau grupuri atomice, iar lookbehind poate avea orice lungime.

Flagurile schimbă modul în care este citit modelul. g găsește toate potrivirile, nu doar prima, i ignoră diferența dintre literele mari și mici, m face ca ^ și $ să se aplice fiecărui rând, iar s permite punctului să se potrivească și cu sfârșitul de rând. u citește textul ca pe caractere Unicode în loc de unități UTF-16, iar v este o versiune mai strictă a lui u din ECMAScript 2024, cu operații pe mulțimi în clasele de caractere. y cere ca fiecare potrivire să înceapă exact acolo unde s-a terminat cea anterioară, iar d reține pozițiile grupurilor.

Parantezele capturează ce au găsit și sunt numerotate după paranteza de deschidere, de la stânga. (?<name>…) dă un nume unui grup, iar (?:…) grupează fără să captureze. În înlocuire, $1 înseamnă grupul 1, $<name> un grup cu nume, $& întreaga potrivire, iar $$ un semn de dolar. Fără flagul g este înlocuită doar prima potrivire.

Unele modele durează extrem de mult, de exemplu (a+)+$ aplicat unui șir lung de a urmat de alt caracter. Motorul încearcă atunci combinații al căror număr crește exponențial cu lungimea textului, fenomen numit backtracking catastrofal. Aici căutarea rulează într-un fir de execuție separat, oprit după două secunde, ca pagina să nu se blocheze. Într-un program de pe un server, același model poate deveni un risc de securitate (ReDoS).

Pozițiile sunt numărate în unități UTF-16, ca în JavaScript, deci un emoji contează dublu. O potrivire goală, de exemplu ^ sau \b, este marcată cu o linie subțire. Textul tău nu părăsește niciodată browserul.

Surse

Cum sunt verificate instrumentele