Nemokamas konverteris

Regex Testeris

Iškart išbandykite ir derinkite reguliariąsias išraiškas savo naršyklėje. Paryškinkite rungtynes, peržiūrėkite fiksavimo grupes ir naudokite pakeitimo režimą – nemokamai ir privačiai.

//g
Vėliavos:

Apie šį įrankį

Reguliarūs posakiai yra konkrečios srities kalba, skirta teksto šablonams derinti. Jie yra kompiuterių dalis nuo 1968 m. ir dabar yra integruoti į kiekvieną šiuolaikinę programavimo kalbą, teksto rengyklę ir komandinės eilutės paieškos įrankį. Sintaksė yra glausta, tačiau dažnai pasitaiko klaidų: maži pakeitimai sukelia subtiliai skirtingą atitikimo elgesį, o sudėtingos išraiškos greitai tampa neįskaitomos. Testeris, kuris rodo atitikmenis realiuoju laiku, kai redaguojate šabloną, yra efektyviausias būdas sukurti ir patikrinti reguliarųjį reiškinį.

Šis testeris veikia jūsų naršyklėje, naudodamas JavaScript regex modulį (tą patį, kurį naudoja jūsų programa, jei ji veikia naršyklėje). Šablonai ir bandomasis tekstas atnaujinami reaktyviai: kiekvienas bet kurio iš jų pakeitimas iš naujo paleidžia atitiktį. Atitikties grupės yra paryškintos, užfiksuotos grupės pateikiamos sąraše, o vėliavėlės (neskiriančios didžiųjų ir mažųjų raidžių, kelių eilučių, visuotinės) pateikiamos testavimui.

Regex sintaksė skirtinguose varikliuose labai skiriasi. JavaScript atitinka ECMAScript specifikaciją; „Python“, „PCRE“ (naudojamas PHP ir daugelis kitų), „Java“ ir „Go“ turi savo dialektus su persidengiančiomis, bet ne identiškomis funkcijomis. Čia sukurti šablonai naudoja ECMAScript sintaksę; Norint perkelti įvairius variklius, reikia patikrinti kiekvieno objekto dokumentus.

Kodėl verta naudoti Regex testerį

„Regex“ klaidas po įdiegimo sunku ištaisyti. Pagrįstai atrodantis modelis gali atitikti daugiau ar mažiau nei numatyta, sugesti kraštutiniais atvejais arba katastrofiškai atsitraukti naudojant tam tikras įvestis. Interaktyvus modelių testavimas pagal reprezentatyvią įvestį užfiksuoja problemas prieš kodo peržiūrą ir gamybą.

Modeliams taip pat naudinga dokumentacija. Rodant reguliarųjį reiškinį kartu su įvestimi, jis turi atitikti, o įvestis neturėtų atitikti, tikslas yra aiškus. Būsimi prižiūrėtojai (įskaitant ir jus po šešių mėnesių) labiau vertina dokumentais pagrįstus bandomuosius atvejus, o ne protingus vienetus.

Kaip naudoti

Įveskite šabloną, įveskite bandomąją įvestį, žr. tiesiogiai paryškintas rungtynes.

  1. Įveskite savo šabloną: Šablono lauke įveskite reguliarųjį reiškinį. Veikia ir pažodinis regex (/pattern/flags), ir tik šablono formos; vėliavėles galima nustatyti per vėliavėlių įvestį.
  2. Pridėti bandymo įvestį: Įklijuokite teksto pavyzdį, kurio raštas turėtų atitikti (ir idealiu atveju tekstą, kuris neturėtų atitikti). Testeris paleidžia šabloną pagal įvestį ir paryškina atitikmenis.
  3. Nustatyti vėliavėles: Įprastos vėliavėlės: g (visuotinis, rasti visus atitikmenis), i (neskiriamos didžiosios ir mažosios raidės), m (daugiaeilis, ^ ir $ atitikties eilutės pradžia / pabaiga), s (taškas, . atitinka naujas eilutes), u (Unikodas).
  4. Patikrinkite rezultatus: Kiekviena atitiktis yra paryškinta įvestyje. Užfiksavimo grupės rodomos sąraše su grupės indeksu ir verte. Testeris taip pat rodo atitikčių skaičių ir visas kompiliavimo klaidas šablone.

Bendro naudojimo atvejai

Techninės detalės

„JavaScript“ reguliarioji išraiška atitinka ECMAScript specifikaciją. Pagrindinės funkcijos: simbolių klasės ([abc], [^abc]), kvantoriai (*, +, ?, {n,m}), kaitaliojimas (|), grupavimas ((...)), fiksavimo ir neužfiksavimo grupės, žvilgsnis į priekį ir atgal (šiuolaikiniai varikliai), atgalinės nuorodos, pavadintos grupės, Unicode ypatybių pabėgimai (su u vėliavėlės rinkiniu) ir standartinės reikšmės.

Svarbūs skirtumai nuo PCRE ir Python: „Lookbehind“ palaikymas neseniai sukurtas „JavaScript“ (2018+); pavadintos grupės naudoja (?<vardas>...) sintaksę; kai kuriems Unicode pabėgimams reikia, kad u vėliavėlė veiktų tinkamai. Raštai, skirti naudoti keliomis kalbomis, turėtų būti patikrinti pagal kiekvieno objekto dokumentus.

Našumas: grįžimu pagrįsti reguliariojo reiškinio varikliai (dauguma įskaitant „JavaScript“) gali turėti katastrofiškų tam tikrų patologinių dėsnių. Testai, kurie pakabina testerį, yra ženklas, kad šabloną reikia supaprastinti – paprastai vengiant įdėtų kvantiklių ir dviprasmiško kaitalio.

Geriausia praktika

Dažnai užduodami klausimai

Kurį regex skonį palaiko šis įrankis?
Jame naudojamas „JavaScript“ integruotas „RegExp“ variklis, kuris palaiko standartinę sintaksę, įskaitant „lookahead“, „lookbehind“ (šiuolaikinėse naršyklėse), pavadintas fiksavimo grupes ir „Unicode“ nuosavybės pabėgimus.
Ar galiu išbandyti regex pakaitalus?
Taip. Norėdami įvesti pakeitimo šabloną, perjunkite į keitimo režimą. Galite naudoti $1, $2 ir tt fiksavimo grupių atgalinėms nuorodoms ir $<vardas> pavadintoms grupėms.
Kodėl mano reguliarioji išraiška čia atitinka kitaip nei Python / PHP?
Skirtingos programavimo kalbos turi šiek tiek skirtingus regex variklius. „JavaScript“ nepalaiko turimų kvantiklių ar kai kurių PCRE specifinių funkcijų. Pagrindinė sintaksė (simbolių klasės, kvantoriai, grupės) visose kalbose yra vienoda.
Ar įrankis išsaugo mano reguliariojo reiškinio šablonus?
Ne. Niekas neišsaugomas ar neperduodamas. Įrankis veikia tik jūsų naršyklėje. Galite pažymėti arba bendrinti šablonus nukopijuodami reguliariosios išraiškos eilutę.
Kaip suderinti pažodinį specialųjį simbolį?
Išvenkite pasviruoju brūkšniu. Kad atitiktų pažodinį tašką: \. Kad atitiktų pažodinį pasvirąjį brūkšnį: \\. Simbolių klasėse [...] dauguma specialiųjų simbolių praranda prasmę.
Ar testeris veikia serveryje?
Ne. Šablonų sudarymas ir derinimas vyksta jūsų naršyklėje naudojant savąjį RegExp objektą.
Ar galiu išbandyti šablonus ne JavaScript varikliams?
Dažniausiai. Dėl paprastų modelių pagrindiniai varikliai sutinka. Išplėstines funkcijas (žiūrėjimas į užpakalį, atomines grupes, posesyvinius kvantorius, Unicode nuosavybės pabėgimus) patvirtinkite pagal tikslinio variklio dokumentus.
Ar jis tvarko labai didelę įvestį?
Iki kelių megabaitų veikia sklandžiai. Didesnė įvestis gali sulėtinti arba užblokuoti naršyklę, ypač jei šablonai linkę grįžti atgal.