Regularni izraz Tester
Testirajte regularne izraze i ispravite ih u trenu u svom pregledniku. Označite podudaranja, pregledajte grupe za snimanje i koristite način zamjene — besplatno i privatno.
Testirajte regularne izraze i ispravite ih u trenu u svom pregledniku. Označite podudaranja, pregledajte grupe za snimanje i koristite način zamjene — besplatno i privatno.
Regularni izrazi jezik su specifičan za domenu za podudaranje uzoraka u tekstu. Oni su dio računalstva od 1968. i sada su ugrađeni u svaki moderni programski jezik, uređivač teksta i alat za pretraživanje naredbenog retka. Sintaksa je koncizna, ali podložna pogreškama: male promjene proizvode suptilno drugačije ponašanje podudaranja, a složeni izrazi brzo postaju nečitljivi. Tester koji pokazuje podudaranja u stvarnom vremenu dok uređujete uzorak najučinkovitiji je način za razvoj i provjeru regularnog izraza.
Ovaj tester radi u vašem pregledniku koristeći JavaScript regex mehanizam (isti onaj koji koristi vaša aplikacija ako se pokreće u pregledniku). Obrasci i testni tekst ažuriraju se reaktivno: svaka promjena na bilo kojem ponovno pokreće podudaranje. Grupe podudaranja su istaknute, snimljene grupe su navedene, a oznake (neosjetljive na velika i mala slova, više redaka, globalne) su izložene za testiranje.
Sintaksa regularnih izraza suptilno se razlikuje od motora do motora. JavaScript slijedi ECMAScript specifikaciju; Python, PCRE (koristi ga PHP i mnogi drugi), Java i Go svaki ima svoje vlastite dijalekte s preklapajućim, ali ne i identičnim značajkama. Ovdje razvijeni uzorci koriste ECMAScript sintaksu; prenosivost između motora zahtijeva provjeru dokumentacije svake mete.
Poznato je da je pogreške regularnih izraza teško otkloniti nakon implementacije. Uzorak koji izgleda razumno može odgovarati više ili manje od predviđenog, zakazati na rubnim slučajevima ili imati katastrofalno vraćanje unatrag na određenim ulazima. Interaktivno testiranje uzoraka u odnosu na reprezentativne unose otkriva probleme prije pregleda koda i proizvodnje.
Uzorci također imaju koristi od dokumentacije. Prikazivanje regularnog izraza pored unosa s kojim bi se trebao podudarati i unosa s kojim se ne bi trebao podudarati čini namjeru eksplicitnom. Budući održavatelji (uključujući i vas za šest mjeseci) cijene dokumentirane testne slučajeve više nego što cijene pametne one-linere.
Upišite uzorak, upišite testni unos, pogledajte istaknute mečeve uživo.
JavaScript regularni izraz slijedi ECMAScript specifikaciju. Glavne značajke: klase znakova ([abc], [^abc]), kvantifikatori (*, +, ?, {n,m}), alternacija (|), grupiranje ((...)), grupe koje hvataju i ne hvataju, pogled unaprijed i pogled iza (moderni motori), povratne reference, imenovane grupe, izlazna svojstva Unicode (sa zastavom u) i standardni skup sekvenci izlaza.
Važne razlike u odnosu na PCRE i Python: podrška za lookbehind nedavno je dostupna u JavaScriptu (2018+); imenovane grupe koriste (?<ime>...) sintaksu; neki Unicode escape-ovi zahtijevaju zastavu u za ispravan rad. Uzorci namijenjeni za višejezičnu upotrebu trebaju se provjeriti prema dokumentaciji svakog cilja.
Izvedba: regex motori koji se temelje na praćenju unatrag (većina uključujući JavaScript) mogu imati katastrofalno vraćanje unatrag na određenim patološkim obrascima. Testovi koji zakače testera znak su da je uzorak potrebno pojednostaviti - obično izbjegavanjem ugniježđenih kvantifikatora i dvosmislenih izmjena.