CodeKitHub
Textové nástroje

Tester regulárních výrazů online

Naposledy aktualizováno:

Tester regulárních výrazů umožňuje napsat regulární výraz a okamžitě vidět, jak odpovídá skutečnému textu, se zachycenými skupinami a příznaky viditelnými během psaní — tento používá JavaScript engine popsaný v průvodci regulárními výrazy na MDN, stejnou syntaxi, jakou používá Node.js a každý prohlížeč. Skvělé pro sestavování a ladění vzorů před jejich vložením do kódu.

//

    Co je tento nástroj?

    Regulární výraz (regex) je kompaktní jazyk vzorů pro hledání, ověřování a extrakci textu: e-mailový vzor může ověřit vstup formuláře, \d{4}-\d{2}-\d{2} najde data a zachycené skupiny vytáhnou části, které potřebujete. Téměř každý programovací jazyk a editor podporuje regex.

    Tento tester používá JavaScript regex engine — stejný, který běží v Node.js a každém prohlížeči — takže vzory, které zde sestavíte, se chovají identicky ve vašem kódu JavaScript/TypeScript. Většina vzorů také funguje beze změny v Pythonu, Javě a Go.

    Proč ho používat?

    • Živá zpětná vazba: shody se zvýrazní žlutě, jak píšete vzor.
    • Zachycené skupiny zobrazené u každé shody — vidíte přesně, co bude obsahovat $1 a $2.
    • Plná podpora příznaků: g (všechny shody), i (ignorovat velikost písmen), m (víceřádkový), s (tečka odpovídá i novému řádku), u (unicode).
    • Jasné chybové zprávy, když má vzor syntaktickou chybu.
    • Zdarma a soukromě — vzor i text nikdy neopustí váš prohlížeč.

    Jak se používá

    1. Napište svůj vzor mezi dva znaky / (lomítka nemusíte sami escapovat).
    2. Upravte příznaky v malém poli za druhým / — výchozí g najde všechny shody.
    3. Vložte svůj testovací text níže.
    4. Shody se okamžitě zvýrazní; zachycené skupiny jsou vypsány pod tím.
    5. Pokud je vzor neplatný, chybová zpráva vysvětlí, co je špatně.

    Příklad

    Vstup

    Vzor: (\w+)@(\w+)\.com
    Testovací řetězec: Kontakt alice@example.com nebo bob@test.com

    Výstup

    ✓ 2 shody
    #1 skupiny: $1=alice  $2=example
    #2 skupiny: $1=bob  $2=test

    Závorky vytvářejí zachycené skupiny, na které se můžete odkazovat jako $1 a $2 v náhradách.

    Praktické tipy

    • Ověřujete vstup e-mailu? ^[^\s@]+@[^\s@]+\.[^\s@]+$ je benevolentní vzor, který zachytí zjevné překlepy bez odmítnutí platných, ale neobvyklých adres — plná shoda s RFC 5322 vyžaduje knihovnu, ne jeden řádek.
    • Extrakce parametrů dotazu z URL: [?&]([^=]+)=([^&]*) s příznakem g, poté čtěte $1/$2 u každé shody místo ručního dělení podle & a =.
    • Chystáte se použít vzor v .replace()? Otestujte ho nejprve zde — co se zvýrazní, je přesně to, čeho se .replace() dotkne, včetně zachycených skupin.
    • Parsujete víceřádkové logy (odpovídání časovému razítku na začátku každého řádku)? Přidejte příznak m, aby se ^ a $ kotvily podle řádku místo celého řetězce.
    • Zkopírovali jste vzor z Pythonu nebo PHP a zde neodpovídá? Zkontrolujte pojmenované skupiny (?P<name>...) — JavaScript používá (?<name>...), bez P — nebo posesivní kvantifikátory (++, *+), které v JavaScript regexu neexistují.

    JavaScript tester regexu, ne obecný

    Tento nástroj běží na vestavěném enginu RegExp JavaScriptu — přesně stejné cestě kódu za str.match(pattern) nebo pattern.test(str) v konzoli prohlížeče nebo Node.js. To se liší od testování proti PCRE (co používá PHP a co je výchozí u mnoha "univerzálních" testerů regexu) nebo Pythonova modulu re: JavaScript nemá posesivní kvantifikátory ani atomické skupiny a pojmenované zachycené skupiny používají (?<name>...) místo PCRE/Pythonova (?P<name>...).

    Pokud se chystáte nasadit vzor uvnitř JS nebo TypeScriptu — validace formuláře, matchování routy, parser logů — testování zde znamená nulový nesoulad dialektů: to, co se zvýrazní na této stránce, je přesně to, čemu odpovídá new RegExp(pattern, flags) za běhu.

    Kam to zapadá v reálných postupech

    Test regexu málokdy stojí osamoceně. Obvyklý postup: potvrďte vzor zde, spusťte skutečné .replace() ve svém kódu a poté porovnejte text před/po, abyste se ujistili, že náhrada udělala přesně to, co jste čekali, a nic víc.

    Extrakce strukturovaných dat pomocí zachycených skupin často přímo navazuje na JSON — naformátujte extrahovaný výstup a zkontrolujte, že se rozparsoval tak, jak jste očekávali.

    Rozdíl textů · JSON Formatter

    Časté dotazy

    Který dialekt regexu tento tester používá?

    JavaScript (ECMAScript), engine v každém prohlížeči a Node.js. Základní syntaxe je přenositelná, ale některé funkce se mezi jazyky liší — např. podpora lookbehind a syntaxe pojmenovaných skupin se liší v Pythonu a Javě.

    Proč můj vzor najde jen první shodu?

    Chybí příznak g (global). Bez g se regex zastaví po první shodě. Tento nástroj má g jako výchozí — zkontrolujte, že jste ho neodstranili.

    Proč . neodpovídá zalomení řádku?

    Ve výchozím nastavení . odpovídá jakémukoli znaku kromě nového řádku. Přidejte příznak s (dotall), aby . odpovídalo i novým řádkům, nebo použijte [\s\S] jako přenositelnou alternativu.

    Co znamenají výsledky zachycených skupin?

    Každý pár závorek ve vašem vzoru zachytí text, který odpovídal. $1 je první skupina, $2 druhá, a tak dále — na tyto se odkazujete v operacích nahrazení a extrakčním kódu.

    Proč je můj regex pomalý nebo zamrzá?

    Pravděpodobně jde o katastrofický backtracking, způsobený vnořenými kvantifikátory jako (a+)+ na neodpovídajícím vstupu. Přepište vzor, abyste se vyhnuli nejednoznačnému opakování. Tento nástroj se pro udržení odezvy omezuje na 1000 shod.

    Související nástroje