Besplatni pretvarač

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.

//g
Zastave:

O ovom alatu

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.

Zašto koristiti Regex tester

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.

Kako koristiti

Upišite uzorak, upišite testni unos, pogledajte istaknute mečeve uživo.

  1. Unesite svoj uzorak: Upišite uzorak regularnog izraza u polje uzorka. I doslovni regularni izraz (/uzorak/zastavice) i obrasci koji sadrže samo uzorak rade; zastavice se mogu postaviti putem unosa zastavica.
  2. Dodajte testni unos: Zalijepite ogledni tekst s kojim bi uzorak trebao odgovarati (a idealno i tekst s kojim se ne bi trebao podudarati). Ispitivač pokreće uzorak prema ulazu i ističe podudaranja.
  3. Postavite zastave: Uobičajene zastavice: g (globalno, pronađi sva podudaranja), i (neosjetljivo na velika i mala slova), m (višeredak, ^ i $ podudaraju početak/završetak retka), s (dotall, . odgovara novim redovima), u (Unicode).
  4. Pregledajte rezultate: Svako podudaranje je označeno u unosu. Grupe snimanja pojavljuju se na popisu s indeksom grupe i vrijednošću. Tester također pokazuje broj podudaranja i sve pogreške kompilacije u uzorku.

Uobičajeni slučajevi upotrebe

Tehnički detalji

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.

Najbolji primjeri iz prakse

Često postavljana pitanja

Koju vrstu regularnog izraza ovaj alat podržava?
Koristi JavaScript-ov ugrađeni RegExp mehanizam, koji podržava standardnu sintaksu uključujući lookaheads, lookbehinds (u modernim preglednicima), imenovane grupe za hvatanje i izlaze svojstava Unicode.
Mogu li testirati zamjene regularnih izraza?
da Prijeđite na način rada Zamjena za unos zamjenskog uzorka. Možete koristiti $1, $2, itd. za povratne reference grupe za snimanje i $<name> za imenovane grupe.
Zašto se moj regularni izraz ovdje podudara drugačije nego u Python/PHP?
Različiti programski jezici imaju malo drugačije mehanizme regularnih izraza. JavaScript ne podržava posesivne kvantifikatore ili neke značajke specifične za PCRE. Osnovna sintaksa (klase znakova, kvantifikatori, grupe) ista je u svim jezicima.
Sprema li alat moje uzorke regularnih izraza?
Ne. Ništa se ne sprema niti prenosi. Alat se u potpunosti pokreće u vašem pregledniku. Možete označiti ili dijeliti uzorke kopiranjem niza regularnog izraza.
Kako mogu spojiti doslovni poseban znak?
Izbjegnite ga obrnutom kosom crtom. Za podudaranje doslovnog točka: \. Za podudaranje doslovne kose crte: \\. Unutar klasa znakova [...] većina posebnih znakova gubi svoje značenje.
Radi li tester na poslužitelju?
Ne. Kompilacija uzorka i podudaranje odvijaju se u vašem pregledniku pomoću izvornog RegExp objekta.
Mogu li testirati uzorke za ne-JavaScript motore?
Uglavnom. Za jednostavne obrasce glavni se motori slažu. Za napredne značajke (lookbehind, atomske grupe, posesivni kvantifikatori, bježanje svojstava Unicode), potvrdite prema dokumentaciji ciljnog stroja.
Podnosi li vrlo velik unos?
Do nekoliko megabajta radi glatko. Veći unosi mogu usporiti ili zaustaviti preglednik, posebno s obrascima sklonim vraćanju unatrag.