Toate instrumentele

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.