Tester regex
Textul de potrivire a modelului de expresii regulate pentru validare, căutare-înlocuire și analiza în jurnal. Testați modelele cu evidențiere live înainte de a trece în codul de producție - evitați surprizele catastrofale de întoarcere la intrarea utilizatorului.
Șablon
Flaguri
Text de test
Ieșire
[0] Hello
[6] world
[12] 123
Cum se testează un regex
1. Introdu modelul regex (fără bare oblice exterioare sau cu steaguri).
2. Setați steaguri: g global, i nu sunt sensibile la majuscule și minuscule, m multilinie.
3. Lipește textul eșantionului în zona șirului de testare.
4. Examinează potrivirile, capturați grupuri și înlocuiți previzualizarea dacă este disponibilă.
Exemple de regex
Validare prin e-mail
^[\\w.-]+@[\\w.-]+\\.\\w+$ captează e-mailuri simple — nu sunt perfecte pentru RFC, dar sunt utile pentru formulare.
Extrageți datele ISO
\\d{4}-\\d{2}-\\d{2} găsește 2024-03-15 în liniile de jurnal pentru înlocuirea grep.
Slugify ajutor
Înlocuiți [^a-z0-9]+ cu cratima pentru URL-ul slug din șirul de titlu.
Când regex ajută
• La validarea șirurilor structurate (telefon, cod poștal).
• La analizarea buștenilor semistructurați.
• Când învățați, captați grupurile și așteptați.
Când să evitați regex
• Când analizați HTML sau JSON - folosești parsere adecvate.
• Când regex devine imposibil de citit - împărțit în logica codului.
• Când riscul ReDoS pe modelele furnizate de utilizator pe server — expiră și limitează lungimea.
Conștientizarea ReDoS
Cuantificatori imbricați, cum ar fi (a+)+ pe CPU-ul șir rău, evitați regex-ul utilizatorului pe server sau folosești motoare sigure cu timeout-uri.
Validare vs extragere
Modelul ancorat ^...$ validează întregul șir; unanchored găsește subșir oriunde.
Înlocuiți în editori
VS Code folosește expresii regulare JS similare în găsire-înlocuire - testați aici, apoi lipește modelul.
Întrebări frecvente
Ce aromă regex?
JavaScript RegExp — există diferențe PCRE (suportul de căutare în urmă variază în funcție de versiunea motorului).
Steagul global g?
Găsește toate potrivirile nu doar prima — testStateful cu lastIndex în JS.
Scăpa de caractere speciale?
. * + ? [ ] ( ) { } | \\ ^ $ trebuie să se evadeze pentru potrivirea literală.
Capturați grupuri?
Parantezele ( ) creează grupuri numerotate accesibile în înlocuiesc $1 $2.
Local?
Da.
Multilinie ^ $?
m flag face ca ^ $ potrivi limitele liniei nu șir întreg.