Bezplatný prevodník

Regex Tester

Okamžite otestujte a odlaďte regulárne výrazy vo svojom prehliadači. Zvýraznite zhody, zobrazte skupiny záberov a použite režim nahradenia – bezplatný a súkromný.

//g
Vlajky:

O tomto nástroji

Regulárne výrazy sú doménovo špecifický jazyk na porovnávanie vzorov v texte. Sú súčasťou výpočtovej techniky od roku 1968 a teraz sú zabudované do každého moderného programovacieho jazyka, textového editora a nástroja na vyhľadávanie v príkazovom riadku. Syntax je stručná, ale náchylná na chyby: malé zmeny vytvárajú jemne odlišné správanie pri zhode a zložité výrazy sa rýchlo stanú nečitateľné. Tester, ktorý zobrazuje zhody v reálnom čase, keď upravujete vzor, ​​je najefektívnejším spôsobom vývoja a overenia regulárneho výrazu.

Tento tester beží vo vašom prehliadači pomocou regulárneho výrazu JavaScript (rovnakého, aký používa vaša aplikácia, ak beží v prehliadači). Vzory a testovací text sa aktualizujú reaktívne: každá zmena jednej z nich znova spustí zápas. Skupiny zhody sú zvýraznené, zachytené skupiny sú uvedené a príznaky (nerozlišujú sa malé a veľké písmená, viacriadkové, globálne) sú vystavené na testovanie.

Syntax regulárneho výrazu sa medzi strojmi jemne líši. JavaScript sa riadi špecifikáciou ECMAScript; Python, PCRE (používaný PHP a mnohými ďalšími), Java a Go majú každý svoje vlastné dialekty s prekrývajúcimi sa, ale nie identickými funkciami. Tu vyvinuté vzory používajú syntax ECMAScript; prenosnosť medzi motormi vyžaduje kontrolu dokumentácie každého cieľa.

Prečo používať tester Regex

Chyby Regex sa po nasadení ťažko ladia. Vzor, ktorý vyzerá rozumne, sa môže zhodovať viac alebo menej, ako bolo zamýšľané, zlyhať v okrajových prípadoch alebo mať katastrofálne spätné sledovanie určitých vstupov. Interaktívne testovanie vzorov proti problémom s reprezentatívnym vstupom pred kontrolou kódu a výrobou.

Vzory tiež ťažia z dokumentácie. Zobrazením regulárneho výrazu vedľa vstupu, ktorý by sa mal zhodovať a vstupu, ktorému by sa nemal zhodovať, je zámer explicitný. Budúci správcovia (vrátane vás o šesť mesiacov) oceňujú zdokumentované testovacie prípady viac ako šikovné jednoduché zostavy.

Ako používať

Napíšte vzor, zadajte testovací vstup, pozrite si zvýraznené zhody naživo.

  1. Zadajte svoj vzor: Zadajte vzor regulárneho výrazu do poľa vzor. Fungujú doslovné regulárne výrazy (/vzor/príznaky) aj formy len so vzorom; príznaky je možné nastaviť pomocou vstupu príznakov.
  2. Pridajte testovací vstup: Prilepte vzorový text, s ktorým by sa mal vzor zhodovať (a ideálne aj text, ktorý by sa nemal zhodovať). Tester spustí vzor proti vstupu a zvýrazní zhody.
  3. Nastaviť vlajky: Bežné príznaky: g (globálne, nájsť všetky zhody), i (nerozlišujú sa malé a veľké písmená), m (viacriadok, ^ a $ sa začína/končí), s (dotall, . zodpovedá novým riadkom), u (Unicode).
  4. Skontrolujte výsledky: Každá zhoda je vo vstupe zvýraznená. Skupiny zachytávania sa zobrazia v zozname so skupinovým indexom a hodnotou. Tester tiež zobrazuje počet zhôd a akékoľvek chyby kompilácie vo vzore.

Bežné prípady použitia

Technické detaily

Regulárny výraz JavaScriptu sa riadi špecifikáciou ECMAScript. Hlavné funkcie: triedy znakov ([abc], [^abc]), kvantifikátory (*, +, ?, {n,m}), alternácia (|), zoskupovanie ((...)), zachytávajúce a nezachytávajúce skupiny, dohľad a dohľad (moderné nástroje), spätné odkazy, pomenované skupiny, úniky vlastností Unicode (s príznakom u) a štandardná sada sekvencií escape.

Dôležité rozdiely oproti PCRE a Pythonu: podpora lookbehind je nedávna v JavaScripte (2018+); pomenované skupiny používajú (?<meno>...) syntax; niektoré únikové cesty Unicode vyžadujú, aby príznak u fungoval správne. Vzory určené na viacjazyčné použitie by sa mali porovnať s dokumentáciou každého cieľa.

Výkon: motory regulárneho výrazu založené na spätnom sledovaní (väčšina vrátane JavaScriptu) môžu mať katastrofálne spätné sledovanie určitých patologických vzorov. Testy, ktoré tester visia, sú znakom toho, že vzor potrebuje zjednodušenie – zvyčajne tým, že sa vyhnete vnoreným kvantifikátorom a nejednoznačnému striedaniu.

osvedčené postupy

Často kladené otázky

Akú príchuť regulárneho výrazu tento nástroj podporuje?
Používa vstavaný nástroj RegExp v JavaScripte, ktorý podporuje štandardnú syntax vrátane dohľadov, dohľadov (v moderných prehliadačoch), pomenovaných skupín zachytávania a únikov vlastností Unicode.
Môžem otestovať nahradenie regulárnych výrazov?
áno. Ak chcete zadať náhradný vzor, ​​prepnite do režimu Nahradiť. Môžete použiť $1, $2, atď. pre spätné referencie zachytávacej skupiny a $<name> pre pomenované skupiny.
Prečo sa tu môj regulárny výraz zhoduje inak ako v Pythone/PHP?
Rôzne programovacie jazyky majú mierne odlišné motory regulárnych výrazov. JavaScript nepodporuje privlastňovacie kvantifikátory ani niektoré funkcie špecifické pre PCRE. Základná syntax (triedy znakov, kvantifikátory, skupiny) je vo všetkých jazykoch rovnaká.
Ukladá nástroj moje vzory regulárnych výrazov?
Nie. Nič sa neukladá ani neprenáša. Nástroj beží úplne vo vašom prehliadači. Vzory si môžete uložiť ako záložku alebo zdieľať skopírovaním reťazca regulárneho výrazu.
Ako priradím doslovný špeciálny znak?
Uniknite to opačnou lomkou. Na zhodu s doslovnou bodkou: \. Ak chcete nájsť doslovnú opačnú lomku: \\. Vo vnútri tried postáv [...] väčšina špeciálnych postáv stráca svoj význam.
Beží tester na serveri?
Nie. Kompilácia a porovnávanie vzorov prebieha vo vašom prehliadači pomocou natívneho objektu RegExp.
Môžem testovať vzory pre iné ako JavaScriptové nástroje?
Väčšinou. Pre jednoduché vzory sa hlavné motory zhodujú. Pokročilé funkcie (lookbehind, atómové skupiny, privlastňovacie kvantifikátory, úniky vlastností Unicode) potvrďte v dokumentácii cieľového motora.
Zvláda veľmi veľký vstup?
Až niekoľko megabajtov funguje bez problémov. Väčšie vstupy môžu spomaliť alebo zablokovať prehliadač, najmä pri vzoroch náchylných na spätné sledovanie.