CodeKitHub
Teksta rīki

Regex testeris tiešsaistē

Pēdējoreiz atjaunināts:

Regex testeris ļauj uzrakstīt regulāru izteiksmi un uzreiz redzēt, kā tā sakrīt ar reālu tekstu, ar uztveršanas grupām un karogiem redzamiem tavā rakstīšanas laikā — šis izmanto JavaScript dzinēju, kas aprakstīts MDN Regulāro izteiksmju rokasgrāmatā, to pašu sintaksi, ko izmanto Node.js un katrs pārlūks. Lieliski der šablonu veidošanai un atkļūdošanai pirms ievietošanas kodā.

//

    Kas ir šis rīks?

    Regulāra izteiksme (regex) ir kompakta šablonu valoda teksta meklēšanai, validēšanai un iegūšanai: e-pasta šablons var pārbaudīt formas ievadi, \d{4}-\d{2}-\d{2} atrod datumus, un uztveršanas grupas izvelk vajadzīgās daļas. Gandrīz katra programmēšanas valoda un redaktors atbalsta regex.

    Šis testeris izmanto JavaScript regex dzinēju — to pašu, kas darbojas Node.js un katrā pārlūkā — tāpēc šeit veidotie šabloni darbojas identiski tavā JavaScript/TypeScript kodā. Lielākā daļa šablonu darbojas arī bez izmaiņām Python, Java un Go valodās.

    Kāpēc to izmantot?

    • Tiešraides atgriezeniskā saite: atbilstības iezīmējas dzeltenā krāsā, kamēr raksti šablonu.
    • Uztveršanas grupas parādītas katrai atbilstībai — redzi tieši, kas būs $1 un $2.
    • Pilns karogu atbalsts: g (visas atbilstības), i (ignorēt reģistru), m (vairākrindu), s (punkts atbilst jaunrindai), u (unikods).
    • Skaidri kļūdu ziņojumi, ja šablonā ir sintakses kļūda.
    • Bezmaksas un privāts — šablons un teksts nekad neatstāj tavu pārlūku.

    Kā to lietot

    1. Ieraksti savu šablonu starp diviem / simboliem (slīpsvītras nav pašam jāizvairās).
    2. Pielāgo karogus mazajā laukumā aiz otrā / — noklusējuma g atrod visas atbilstības.
    3. Ielīmē savu testa tekstu zemāk.
    4. Atbilstības iezīmējas uzreiz; uztveršanas grupas parādās sarakstā zemāk.
    5. Ja šablons nav derīgs, kļūdas ziņojums paskaidro, kas nav kārtībā.

    Piemērs

    Ievade

    Šablons: (\w+)@(\w+)\.com
    Testa virkne: Sazinies ar alice@example.com vai bob@test.com

    Izvade

    ✓ 2 atbilstības
    #1 grupas: $1=alice  $2=example
    #2 grupas: $1=bob  $2=test

    Iekavas izveido uztveršanas grupas, uz kurām vari atsaukties kā $1 un $2 aizvietošanās.

    Praktiski padomi

    • Validē e-pasta ievadi? ^[^\s@]+@[^\s@]+\.[^\s@]+$ ir pielaidīgs šablons, kas noķer acīmredzamas drukas kļūdas, nenoraidot derīgas, bet neparastas adreses — pilna RFC 5322 atbilstība prasa bibliotēku, nevis vienu rindiņu.
    • Izvelc vaicājuma parametrus no URL: [?&]([^=]+)=([^&]*) ar g karogu, tad lasi $1/$2 katrai atbilstībai, nevis pats sadalot pēc & un =.
    • Gatavojies izmantot šablonu .replace()? Vispirms testē to šeit — tas, kas iezīmējas, ir tieši tas, ko .replace() ietekmēs, ieskaitot uztveršanas grupas.
    • Analizē vairākrindu žurnālus (atrodot laika zīmogu katras rindas sākumā)? Pievieno m karogu, lai ^ un $ noenkurotos katrai rindai atsevišķi, nevis visai virknei.
    • Nokopēji šablonu no Python vai PHP, un tas šeit nesakrīt? Pārbaudi (?P<name>...) nosauktās grupas — JavaScript izmanto (?<name>...), bez P — vai īpašnieciskos kvantifikatorus (++, *+), kuru JavaScript regex nav.

    JavaScript regex testeris, ne universāls

    Šis rīks izmanto JavaScript iebūvēto RegExp dzinēju — precīzi to pašu koda ceļu, kas darbojas aiz str.match(pattern) vai pattern.test(str) pārlūka konsolē vai Node.js. Tas atšķiras no testēšanas pret PCRE (ko izmanto PHP un daudzi "universāli" regex testeri pēc noklusējuma) vai Python re moduli: JavaScript nav īpašniecisko kvantifikatoru vai atomāro grupu, un nosaukto uztveršanas grupu sintakse ir (?<name>...) nevis PCRE/Python (?P<name>...).

    Ja gatavojies izmantot šablonu JS vai TypeScript kodā — formu validācijai, maršruta atbilstībai, žurnāla analīzei — testēšana šeit nozīmē nulle varianta neatbilstības: tas, kas iezīmējas šajā lapā, ir tieši tas, kam atbilst new RegExp(pattern, flags) izpildlaikā.

    Kur tas iekļaujas reālās darbplūsmās

    Regex tests reti stāv viens pats. Parastā secība: apstiprini šablonu šeit, izpildi faktisko .replace() savā kodā, tad salīdzini teksta atšķirības pirms un pēc, lai pārliecinātos, ka aizvietošana izdarīja to, ko gaidīji, un neko vairāk.

    Strukturētu datu iegūšana ar uztveršanas grupām bieži ved tieši uz JSON — formatē iegūto rezultātu, lai pārbaudītu, ka tas tika sadalīts, kā gaidīts.

    Teksta salīdzinātājs (Diff) · JSON formatētājs

    Biežāk uzdotie jautājumi

    Kuru regex variantu izmanto šis testeris?

    JavaScript (ECMAScript), dzinēju, kas ir katrā pārlūkā un Node.js. Pamata sintakse ir pārnesama, bet dažas funkcijas atšķiras starp valodām — piem., lookbehind atbalsts un nosaukto grupu sintakse atšķiras Python un Java valodās.

    Kāpēc mans šablons atrod tikai pirmo atbilstību?

    Trūkst g (globālā) karoga. Bez g regex apstājas pēc pirmās atbilstības. Šis rīks pēc noklusējuma izmanto g — pārbaudi, vai tu to neesi noņēmis.

    Kāpēc . neatbilst manām rindu pārtraukumiem?

    Pēc noklusējuma . atbilst jebkurai rakstzīmei, izņemot jaunrindas. Pievieno s karogu (dotall), lai . atbilstu arī jaunrindām, vai izmanto [\s\S] kā pārnesamu alternatīvu.

    Ko nozīmē uztveršanas grupu rezultāti?

    Katrs iekavu pāris tavā šablonā uztver tekstu, kam tas atbilst. $1 ir pirmā grupa, $2 — otrā, un tā tālāk — uz tām tu atsaucies aizvietošanas un iegūšanas kodā.

    Kāpēc mans regex ir lēns vai sasalis?

    Visticamāk, katastrofāla atgriešanās (backtracking), ko izraisa iekļauti kvantifikatori, piemēram, (a+)+ neatbilstošai ievadei. Pārraksti šablonu, lai izvairītos no neskaidras atkārtošanās. Šis rīks ierobežo līdz 1000 atbilstībām, lai saglabātu ātrdarbību.

    Saistītie rīki