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.
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.
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.
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.
Introduceți un model, introduceți intrarea de testare, vedeți potrivirile evidențiate live.
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.