Convertor gratuit

Regex Tester

Testați și depanați instantaneu expresiile regulate în browser. Evidențiați potrivirile, vizualizați grupurile de captură și utilizați modul de înlocuire - gratuit și privat.

//g
Steaguri:

Despre acest instrument

Expresiile regulate sunt un limbaj specific domeniului pentru potrivirea tiparelor din text. Ele fac parte din calcul din 1968 și sunt acum încorporate în fiecare limbaj de programare modern, editor de text și instrument de căutare în linia de comandă. Sintaxa este concisă, dar predispusă la erori: modificările mici produc un comportament de potrivire subtil diferit, iar expresiile complexe devin rapid ilizibile. Un tester care afișează potrivirile în timp real pe măsură ce editați modelul este cel mai eficient mod de a dezvolta și verifica regex.

Acest tester rulează în browserul dvs. folosind motorul JavaScript regex (același pe care îl folosește aplicația dvs. dacă rulează într-un browser). Modelele și textul de testare se actualizează în mod reactiv: fiecare modificare a fiecărei reluează meciul. Grupurile de potrivire sunt evidențiate, grupurile capturate sunt listate și steaguri (insensibile la majuscule, mai multe linii, globale) sunt expuse pentru testare.

Sintaxa Regex variază subtil între motoare. JavaScript urmează specificațiile ECMAScript; Python, PCRE (folosit de PHP și multe altele), Java și Go au fiecare dialectele lor cu caracteristici suprapuse, dar nu identice. Modelele dezvoltate aici folosesc sintaxa ECMAScript; portabilitatea între motoare necesită verificarea documentației fiecărei ținte.

De ce să folosiți un tester de regex

Erori de regex sunt notoriu greu de depanat după implementare. Un model care pare rezonabil s-ar putea să se potrivească mai mult sau mai puțin decât intenționat, s-ar putea să eșueze în cazurile marginale sau să aibă un backtracking catastrofal pentru anumite intrări. Testarea interactivă a tiparelor împotriva intrărilor reprezentative detectează probleme înainte de revizuirea și producerea codului.

Modelele beneficiază și de documentare. Afișarea unei expresii regex alături de intrarea cu care ar trebui să se potrivească și intrarea cu care nu ar trebui să se potrivească face intenția explicită. Viitorii menținători (inclusiv pe dvs. în șase luni) apreciază cazurile de testare documentate mai mult decât apreciază cuvintele inteligente inteligente.

Cum se utilizează

Introduceți un model, introduceți intrarea de testare, vedeți potrivirile evidențiate live.

  1. Introduceți modelul dvs: Introduceți modelul regex în câmpul model. Atât formele literale regex (/pattern/flags) cât și numai modele funcționează; steaguri pot fi setate prin intrarea steaguri.
  2. Adăugați intrare de test: Lipiți textul eșantion cu care modelul ar trebui să se potrivească (și în mod ideal, de asemenea, textul cu care nu ar trebui să se potrivească). Testerul rulează modelul în raport cu intrarea și evidențiază potrivirile.
  3. Setați steaguri: Steaguri comune: g (global, găsiți toate potrivirile), i (indiferent de majuscule și minuscule), m (linii multiple, ^ și $ potriviți linia începe/se termină), s (punct, . potrivește linii noi), u (Unicode).
  4. Inspectați rezultatele: Fiecare potrivire este evidențiată în intrare. Grupurile de captură apar într-o listă cu indicele și valoarea grupului. Testerul arată, de asemenea, numărul de potriviri și orice erori de compilare din model.

Cazuri comune de utilizare

Detalii tehnice

JavaScript regex urmează specificația ECMAScript. Caracteristici majore: clase de caractere ([abc], [^abc]), cuantificatori (*, +, ?, {n,m}), alternanță (|), grupare ((...)), grupuri de captură și non-captură, lookahead și lookbehind (motoare moderne), referințe din spate, grupuri denumite, escape de proprietate Unicode (cu steag u) și setul standard de escape.

Diferențe importante față de PCRE și Python: suportul lookbehind este recent în JavaScript (2018+); grupurile numite folosesc sintaxa (?<nume>...); unele evadări Unicode necesită semnalizarea u pentru a funcționa corect. Modelele destinate utilizării în mai multe limbi ar trebui verificate în raport cu documentația fiecărei ținte.

Performanță: motoarele regex bazate pe backtracking (majoritatea inclusiv JavaScript) pot avea backtracking catastrofal pe anumite modele patologice. Testele care suspendă testerul sunt un semn că modelul are nevoie de simplificare - de obicei prin evitarea cuantificatorilor imbricați și a alternanței ambigue.

Cele mai bune practici

Întrebări frecvente

Ce aromă regex acceptă acest instrument?
Utilizează motorul RegExp încorporat de JavaScript, care acceptă sintaxa standard, inclusiv lookaheads, lookbehinds (în browserele moderne), grupuri de captură cu nume și escape de proprietate Unicode.
Pot testa înlocuirile regex?
Da. Comutați la modul Înlocuire pentru a introduce un model de înlocuire. Puteți folosi $1, $2 etc. pentru referințele din spate ale grupului de captură și $<nume> pentru grupurile numite.
De ce regex-ul meu se potrivește diferit aici decât în Python/PHP?
Diferite limbaje de programare au motoare regex ușor diferite. JavaScript nu acceptă cuantificatori posesivi sau unele caracteristici specifice PCRE. Sintaxa de bază (clase de caractere, cuantificatori, grupuri) este aceeași în toate limbile.
Instrumentul îmi salvează modelele regex?
Nu. Nimic nu este salvat sau transmis. Instrumentul rulează în întregime în browserul dvs. Puteți marca sau partaja modele prin copierea șirului regex.
Cum pot potrivi un caracter special literal?
Scăpați de el cu o bară oblică inversă. Pentru a se potrivi cu un punct literal: \. Pentru a se potrivi cu o bară oblică inversă: \\. În cadrul claselor de caractere [...], majoritatea caracterelor speciale își pierd sensul.
Testerul rulează pe un server?
Nu. Compilarea și potrivirea modelelor au loc în browser folosind obiectul RegExp nativ.
Pot testa modele pentru motoarele non-JavaScript?
În cea mai mare parte. Pentru modele simple, motoarele majore sunt de acord. Pentru funcții avansate (în urmă, grupuri atomice, cuantificatori posesivi, escape de proprietate Unicode), confirmați cu documentația motorului țintă.
Gestionează intrări foarte mari?
Până la câțiva megabiți funcționează fără probleme. Intrările mai mari pot încetini sau bloca browserul, în special în cazul modelelor predispuse la întoarcere.