Bezmaksas pārveidotājs

Regex Testētājs

Tūlītēji pārbaudiet un atkļūdojiet regulārās izteiksmes savā pārlūkprogrammā. Izceliet atbilstības, skatiet uzņemšanas grupas un izmantojiet aizstāšanas režīmu — bezmaksas un privāti.

//g
Karogi:

Par šo rīku

Regulārās izteiksmes ir domēna specifiska valoda teksta modeļu saskaņošanai. Tie ir bijuši daļa no skaitļošanas kopš 1968. gada un tagad ir iebūvēti katrā modernajā programmēšanas valodā, teksta redaktorā un komandrindas meklēšanas rīkā. Sintakse ir kodolīga, taču tajā ir iespējamas kļūdas: nelielas izmaiņas rada smalki atšķirīgu atbilstību, un sarežģītas izteiksmes ātri kļūst nelasāmas. Testeris, kas parāda atbilstības reāllaikā, kad rediģējat modeli, ir visefektīvākais veids, kā izstrādāt un pārbaudīt regulāro izteiksmi.

Šis testeris darbojas jūsu pārlūkprogrammā, izmantojot JavaScript regex programmu (to pašu, ko jūsu lietojumprogramma izmanto, ja tā darbojas pārlūkprogrammā). Raksti un testa teksts tiek atjaunināti reaktīvi: ikvienas izmaiņas tiek atkārtoti izpildītas. Atbilstības grupas ir izceltas, tvertās grupas ir uzskaitītas, un karodziņi (nejutīgi pret reģistriem, vairākrindu, globāli) tiek parādīti testēšanai.

Regex sintakse dažādiem dzinējiem ir ļoti atšķirīga. JavaScript ievēro ECMAScript specifikāciju; Python, PCRE (ko izmanto PHP un daudzi citi), Java un Go katram ir savi dialekti ar pārklājošām, bet ne identiskām funkcijām. Šeit izstrādātie modeļi izmanto ECMAScript sintaksi; Lai nodrošinātu pārnēsājamību starp dzinējiem, ir jāpārbauda katra mērķa dokumentācija.

Kāpēc izmantot Regex testeri

Regex kļūdas pēc izvietošanas ir ļoti grūti atkļūdot. Modelis, kas izskatās saprātīgs, var atbilst vairāk vai mazāk nekā paredzēts, var neizdoties malas gadījumos vai katastrofāli atkāpties no noteiktiem ievadiem. Pārbaudot modeļus interaktīvi pret reprezentatīvu ievadi, tiek konstatētas problēmas pirms koda pārskatīšanas un izstrādes.

Raksti arī gūst labumu no dokumentācijas. Rādot regulāro izteiksmi līdzās ievadei, tam ir jāatbilst un ievadei, kurai tai nevajadzētu atbilst, nolūks ir skaidri izteikts. Nākotnes uzturētāji (tostarp jūs pēc sešiem mēnešiem) novērtē dokumentētus testēšanas gadījumus vairāk nekā gudrus viengabalus.

Kā lietot

Ierakstiet paraugu, ierakstiet testa ievadi, skatiet izceltās atbilstības tiešraidē.

  1. Ievadiet savu modeli: Raksta laukā ierakstiet regulāro izteiksmi. Darbojas gan burtiskā regulārā izteiksme (/pattern/flags), gan tikai šablona formas; karogus var iestatīt, izmantojot karogu ievadi.
  2. Pievienojiet testa ievadi: Ielīmējiet teksta paraugu, kuram ir jāatbilst rakstam (un ideālā gadījumā arī tekstam, kam tam nevajadzētu atbilst). Testeris palaiž modeli pret ievadi un izceļ atbilstības.
  3. Uzstādiet karogus: Izplatītākie karodziņi: g (globāls, atrast visas atbilstības), i (reģistrjutīgs), m (vairākrindu, ^ un $ atbilstības rindas sākums/beidzas), s (punkts, . atbilst jaunām rindiņām), u (unikods).
  4. Pārbaudiet rezultātus: Katra atbilstība ievadē ir iezīmēta. Uztveršanas grupas tiek parādītas sarakstā ar grupas indeksu un vērtību. Testeris parāda arī sakritību skaitu un visas kompilācijas kļūdas shēmā.

Bieži lietojami gadījumi

Tehniskās detaļas

JavaScript regex atbilst ECMAScript specifikācijai. Galvenās funkcijas: rakstzīmju klases ([abc], [^abc]), kvantori (*, +, ?, {n,m}), maiņa (|), grupēšana ((...)), tveršanas un neuztveršanas grupas, skatīšanās uz priekšu un aizmugure (mūsdienīgie dzinēji), atpakaļatsauces, nosauktas grupas, Unikoda rekvizītu atsoļi (ar standarta u karodziņu) un standarti.

Svarīgas atšķirības no PCRE un Python: lookbehind atbalsts nesen ir pieejams JavaScript (2018+); nosauktās grupas izmanto (?<nosaukums>...) sintakse; Dažiem Unikoda izņēmumiem ir nepieciešams, lai karodziņš u darbotos pareizi. Raksti, kas paredzēti lietošanai vairākās valodās, ir jāpārbauda katra mērķa dokumentācijā.

Veiktspēja: regulārās izteiksmes dzinējiem, kuru pamatā ir atkāpšanās (vairums ietver JavaScript), var būt katastrofāla atkāpšanās no noteiktiem patoloģiskiem modeļiem. Testi, kas pakarina testeri, liecina, ka modelis ir jāvienkāršo — parasti izvairoties no ligzdotiem kvantoriem un neskaidras maiņas.

Labākā prakse

Bieži uzdotie jautājumi

Kuru regex aromātu atbalsta šis rīks?
Tas izmanto JavaScript iebūvēto RegExp dzinēju, kas atbalsta standarta sintaksi, tostarp lookaheads, lookahinds (mūsdienīgās pārlūkprogrammās), nosauktas uztveršanas grupas un Unicode rekvizītus.
Vai es varu pārbaudīt regulārās izteiksmes aizstājējus?
Jā. Pārslēdzieties uz Replace režīmu, lai ievadītu nomaiņas modeli. Varat izmantot $1, $2 utt. tveršanas grupu atpakaļatsaucēm un $<nosaukums> nosauktajām grupām.
Kāpēc mana regulārā izteiksme šeit atšķiras no Python/PHP?
Dažādām programmēšanas valodām ir nedaudz atšķirīgi regex dzinēji. JavaScript neatbalsta īpašību kvantatorus vai dažus PCRE specifiskus līdzekļus. Galvenā sintakse (rakstzīmju klases, kvantori, grupas) visās valodās ir vienāda.
Vai rīks saglabā manus regulārās izteiksmes modeļus?
Nē. Nekas netiek saglabāts vai pārsūtīts. Rīks pilnībā darbojas jūsu pārlūkprogrammā. Varat pievienot grāmatzīmēm vai kopīgot modeļus, kopējot regulārās izteiksmes virkni.
Kā saskaņot burtisku īpašo rakstzīmi?
Izvairieties no tā, izmantojot slīpsvītru. Lai atbilstu burtiskam punktam: \. Lai atbilstu burtiskai slīpsvītrai: \\. Rakstzīmju klasēs [..] lielākā daļa īpašo rakstzīmju zaudē savu nozīmi.
Vai testeris darbojas serverī?
Nē. Rakstu apkopošana un saskaņošana notiek jūsu pārlūkprogrammā, izmantojot vietējo RegExp objektu.
Vai varu pārbaudīt modeļus dzinējiem, kas nav JavaScript dzinēji?
Lielākoties. Par vienkāršiem modeļiem galvenie dzinēji piekrīt. Papildfunkcijas (skatīšanās aiz muguras, atomu grupas, piederošie kvantori, Unikoda rekvizītu izplūdes) apstipriniet, izmantojot mērķa dzinēja dokumentāciju.
Vai tas apstrādā ļoti lielu ievadi?
Līdz dažiem megabaitiem darbojas nevainojami. Lielākas ievades var palēnināt vai apturēt pārlūkprogrammas darbību, jo īpaši, ja modeļi ir pakļauti atkāpšanās procesam.