Přeskočit na obsah

Regex z příkladů

Přeměňte vzorové řetězce na regulární výraz a zjistěte, které příklady se shodují.

Vstup
Příklady, které se vzor NEmá shodovat
Výstup

Regex z příkladů

Vložte několik řetězců, které by měl vzor shodovat — jeden na řádek — a tento nástroj odvodí regulární výraz, který zachycuje jejich společnou strukturu. Pod vygenerovaným vzorem jsou uvedeny všechny příklady se zatržítkem, takže vidíte na první pohled, zda výsledek opravdu pokrývá to, co jste vložili.

Úroveň zobecnění řídí, jak doslova jsou výsledky. Možnost "Přesné znaky" zachovává každý znak tak, jak je, a kombinuje pouze rozdílně tvarované příklady pomocí alternace. Možnost "Třídy znaků" nahradí číslice, písmena a mezery výrazem \d, \p{Lu}/\p{Ll} a \s, přičemž zachovává přesné počty opakování z vašich příkladů. Možnost "Flexibilní kvantifikátory" jde dále a mění tyto řady na shody "jeden nebo více", což lépe zobecňuje, ale také se shoduje více než vaše vzorky. Ukotvení přidává ^ a $ tak, aby se musel shodovat celý řetězec místo pouze podřetězce, rozlišování velikosti písmen řídí, zda na velikosti písmen záleží, a pojmenované skupiny obalují proměnné části vzoru, abyste je později mohli extrahovat podle názvu. Možnost dialektu upravuje způsob psaní pojmenovaných skupin pro JavaScript, PCRE nebo Python, protože se tyto tři na této syntaxi neshodují.

Vložte řetězce, které se vzor NEsmí shodovat, do druhého pole, a nástroj zkontroluje vygenerovaný vzor také proti nim — všechny negativní příklady, které stále shodují, se označí, což je nejrychlejší způsob, jak zachytit vzor, který je příliš široký. Zapněte vysvětlení a získejte vzor rozdělený na jednotlivé části s jednoduchým popisem toho, co jednotlivé části dělají.

Všechno běží lokálně ve vašem prohlížeči: příklady, které vložíte, negativní příklady a vygenerovaný vzor nikdy neopustí vaše zařízení. Zkopírujte výsledek, stáhněte si jej jako soubor .txt nebo pošlete výstup zpět na vstup a upřesněte jej vzhledem k více příkladům.

Časté dotazy

Shoduje vygenerovaný regex vždy všechny příklady, které jsem vložil?
Ano — vzor je postaven přímo z vašich příkladů, takže je navržen tak, aby se shodoval se všemi nimi podle úrovně přísnosti, kterou jste zvolili. Pokud mají vaše příklady skutečně rozdílné tvary, nástroj se vrátí k shodování jedné z různých forem.
Co přesně změní "Třídy znaků"?
Nahrazuje řady číslic, písmen a mezer jejich třídou regex (\d, \p{Lu}, \p{Ll}, \s) místo doslova znaků, přičemž zachovává přesný počet opakování videných v příkladech — takže "AB12" se stane \p{Lu}{2}\d{2}, ne doslova "AB12".
Proč se vzor shodoval také s jedním z mých negativních příkladů?
Negativní shoda obvykle znamená, že zobecnění je širší než váš záměr — zkuste přísnější úroveň, zapněte ukotvení nebo přidejte konkrétnější negativní příklad, aby se zobrazilo přesně to, co uniklo.
Bude se vzor chovat úplně stejně v Pythonu nebo PCRE?
Třídy znaků a kvantifikátory jsou sdíleny mezi dialekty, ale syntaxe pojmenovaných skupin se liší — možnost dialektu pouze upravuje způsob zobrazení těchto skupin (JavaScript používá (?<name>…), PCRE a Python tradičně používají (?P<name>…)); vždy otestujte výsledek proti vašemu skutečnému enginu.
Jsou moje vzorové řetězce někde odeslány?
Ne. Vzor je generován zcela ve vašem prohlížeči — vaše příklady a vygenerovaný regex nikdy neopustí vaše zařízení.