Přeskočit na obsah

Bezplatný online tester a validátor regulárních výrazů - Okamžité testování vzorů

Testujte a ověřujte regulární výrazy online s real-time zvýrazněním. Bezplatný tester vzorů regex s validací syntaxe, výsledky shody a funkcí ukládání. Otestujte regex nyní!

Tester Regulárních Výrazů

Výsledky Shody

Zadejte vzor a testovací text pro zobrazení výsledků

Uložit Vzor

Uložené Vzory

Zatím nejsou uloženy žádné vzory

Průvodce Symboly Regulárních Výrazů

.Odpovídá jakémukoli znaku kromě nového řádku
\dOdpovídá jakékoli číslici (0-9)
\DOdpovídá jakémukoli znaku, který není číslice
\wOdpovídá jakémukoli slovnímu znaku (a-z, A-Z, 0-9, _)
\WOdpovídá jakémukoli znaku, který není slovní znak
\sOdpovídá jakémukoli prázdnému znaku
\SOdpovídá jakémukoli znaku, který není prázdný
^Odpovídá začátku řádku
$Odpovídá konci řádku
*Odpovídá 0 nebo více předchozím znakům
+Odpovídá 1 nebo více předchozím znakům
?Odpovídá 0 nebo 1 předchozímu znaku
{n}Odpovídá přesně n předchozím znakům
{n,}Odpovídá nejméně n předchozím znakům
{n,m}Odpovídá mezi n a m předchozím znakům
[abc]Odpovídá kterémukoli znaku v závorkách
[^abc]Odpovídá jakémukoli znaku, který není v závorkách
(abc)Seskupuje více tokenů dohromady a zachytává shodu
a|bOdpovídá buď a nebo b
\bOdpovídá pozici hranice slova
Kalkulačka načítání...
📚

Dokumentace

Co je tester regulárních výrazů

Tester regulárních výrazů je nástroj, který porovnává regulární výraz s částí textu a zobrazuje, čemu odpovídá. Regulární výraz neboli regex je krátká posloupnost znaků popisující vzor v textu, například „tři číslice za sebou“ nebo „libovolné slovo začínající velkým písmenem“. Tento validátor regulárních výrazů umožňuje zadat vzor a zkušební text a ihned zobrazit zvýrazněné shody, aniž by bylo nutné psát kód.

Regulární výrazy se používají v mnoha programovacích jazycích k vyhledávání textu, kontrole správného formátu uživatelského vstupu a získávání konkrétních částí z většího bloku textu. Syntaxe je stručná, ale snadno se v ní udělá chyba, takže otestování vzoru před použitím v programu pomáhá odhalit chyby včas.

Jak testovat regulární výraz online

  1. Zadejte vzor. Zadejte regex do pole pro vzor. Nástroj kontroluje syntaxi během psaní a při neplatném vzoru zobrazí chybovou zprávu, například když zůstane otevřená hranatá závorka nebo kulatá závorka.
  2. Zvolte příznaky. Příznaky mění způsob použití vzoru (viz níže).
  3. Zadejte zkušební text. Zadejte nebo vložte text, ve kterém se má vyhledávat, do pole pro zkušební text.
  4. Prohlédněte si výsledky. Shody jsou v textu zvýrazněny a nástroj uvádí, kolik shod nalezl. Pokud je zadán zkušební text, nástroj také uvede, zda vzor odpovídá celému textu od začátku do konce, nebo pouze jeho části.
  5. Uložte vzor. Vzor lze uložit s krátkým označením, aby jej bylo možné později znovu použít. Uložené vzory se uchovávají v prohlížeči, nikoli na serveru, takže se zobrazí pouze na stejném zařízení a ve stejném prohlížeči.
  6. Zkopírujte výsledky. Nalezený text nebo samotný vzor lze jedním kliknutím zkopírovat do schránky.

Příznaky regexu

Příznak je jedno písmeno přidané za vzor, které mění jeho chování. Tento nástroj podporuje čtyři příznaky, samostatně nebo v kombinaci:

PříznakNázevÚčinek
gGlobálníVyhledá všechny shody v textu, místo aby skončil u první.
iBez rozlišení velikosti písmenIgnoruje rozdíly mezi velkými a malými písmeny.
mVíceřádkovýZpůsobí, že ^ a $ odpovídají začátku a konci každého řádku, nikoli pouze začátku a konci celého textu. Mění místo, kde se shody hledají, nikoli kontrolu celého textu popsanou níže.
sTečka odpovídá všemuZpůsobí, že . odpovídá také znakům nového řádku.

Příznaky lze kombinovat, například gi pro globální vyhledávání bez rozlišení velikosti písmen nebo gms pro současné globální a víceřádkové vyhledávání, při kterém tečka odpovídá všemu.

Jak nástroj vyhledává shody

Vyhledávač vždy hledá každý výskyt vzoru v textu, proto se počítání shod chová, jako by byl zapnutý globální příznak, i když není vybrán v rozbalovacím seznamu. Každá shoda se zaznamená s pozicí a délkou a původní text se poté rozdělí na nalezené a nenalezené části, aby bylo možné shody zvýraznit.

Chcete-li ověřit, zda vzor odpovídá celému textu, nástroj jej uzavře do nezachytávající skupiny a opatří kotvami: ^(?:pattern)$. Seskupení je důležité, protože | (alternace) má nižší prioritu než kotvy. Bez skupiny by vzor jako cat|dog opatřený kotvami ^cat|dog$ ve skutečnosti znamenal „začíná na cat nebo končí na dog“, což není totéž jako „celý text je cat nebo dog“.

Tato kontrola také vypouští víceřádkový příznak. Pokud je nastaveno m, ^ a $ odpovídají na každém zalomení řádku, takže test s kotvami by odpověděl na otázku „odpovídá některý řádek?“, nikoli „odpovídá celý text?“. Nástroj pro tuto kontrolu odstraňuje m a ponechává i a s, protože tyto dva příznaky mění to, čemu vzor odpovídá, nikoli umístění kotev. Výsledek se proto vždy vztahuje k úplnému textu včetně zalomení řádků.

Příklad výpočtu

Vzor: \d+ (jedna nebo více číslic), příznak: g, zkušební text: Room 12 has 5 chairs.

  • Nalezené shody: 12 a 5, takže počet shod je 2.
  • Kontrola celého textu: vzor neodpovídá celému textu, protože text obsahuje také písmena a mezery.

Pokud se zkušební text změní na 12345, stejný vzor odpovídá celému řetězci, takže kontrola celého textu vrátí hodnotu true.

Přehled syntaxe regexu

Rozpoznávání znaků

SymbolVýznamPříkladOdpovídá
.Libovolný znak kromě znaku nového řádkua.c„abc“, „adc“, „a1c“
\dLibovolná číslice od 0 do 9\d{3}"123", "456"
\DLibovolný znak, který není číslicí\D+„abc“, „xyz“
\wLibovolné písmeno, číslice nebo podtržítko\w+„abc123“, „test_123“
\WLibovolný znak, který není písmenem, číslicí ani podtržítkem\W+"!@#"
\sLibovolný bílý znaka\sb„a b“
\SLibovolný znak, který není bílý znak\S+„abc“

Kotvy pozic

SymbolVýznamPříkladOdpovídá
^Začátek řádku^abc„abc“ na začátku řádku
$Konec řádkuabc$„abc“ na konci řádku
\bHranice slova\bword\b„word“ jako celé slovo

Kvantifikátory

SymbolVýznamPříkladOdpovídá
*Nula nebo více výskytů předchozí položkya*b„b“, „ab“, „aab“
+Jeden nebo více výskytů předchozí položkya+b„ab“, „aab“
?Nula nebo jeden výskyt předchozí položkycolou?r„color“, „colour“
{n}Přesně n výskytů předchozí položkya{3}„aaa“
{n,}Alespoň n výskytů předchozí položkya{2,}„aa“, „aaa“
{n,m}Od n do m výskytů předchozí položkya{2,4}„aa“, „aaa“, „aaaa“

Množiny znaků a skupiny

SymbolVýznamPříkladOdpovídá
[abc]Libovolný jeden znak uvedený v hranatých závorkách[aeiou]libovolná jedna samohláska
[^abc]Libovolný znak, který není uveden v hranatých závorkách[^aeiou]libovolný znak, který není samohláskou
(abc)Seskupí znaky a zachytí shodu(abc)+„abc“, „abcabc“
abOdpovídá a nebo bcat

Za pozornost stojí ještě dvě funkce. Dopředný náhled, zapisovaný jako a(?=b), odpovídá znaku „a“ pouze tehdy, když za ním následuje „b“, aniž by znak „b“ zahrnul do shody. Zpětný náhled, zapisovaný jako (?<=a)b, odpovídá znaku „b“ pouze tehdy, když následuje bezprostředně po znaku „a“.

Běžné příklady vzorů

Tyto vzory lze vložit do nástroje a sledovat jejich chování na ukázkovém textu.

Pouze číslice: ^\d+$ odpovídá řetězci tvořenému výhradně číslicemi, například „48210“, a odmítne vše, co obsahuje písmeno nebo mezeru.

E-mailová adresa (základní kontrola): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ odpovídá adresám ve tvaru name@domain.tld, například „user@example.com“. Jde o jednoduchou kontrolu, nikoli o úplný formát e-mailu definovaný internetovými standardy, takže některé neobvyklé, ale platné adresy jí neprojdou.

Telefonní číslo v USA: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ odpovídá formátům jako „(123) 456-7890“, „123-456-7890“ a „1234567890“.

Datum ve formátu RRRR-MM-DD: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ kontroluje, zda je měsíc mezi 01 a 12 a den mezi 01 a 31. Nekontroluje, zda je den platný pro konkrétní měsíc, takže přijme „2024-02-30“, přestože únor nikdy nemá 30 dní.

Často kladené otázky

Co je regulární výraz? Regulární výraz je posloupnost znaků, která definuje vyhledávací vzor. Používá se k vyhledávání, porovnávání a úpravám textu ve většině programovacích jazyků a textových editorů.

Co dělá globální příznak? Bez globálního příznaku se vyhledávání obvykle zastaví po první shodě. S globálním příznakem (g) vyhledávání pokračuje a ohlásí každou shodu v textu. Tento nástroj při počítání shod vždy vyhledává všechny shody bez ohledu na zvolený příznak.

Jak najdu doslovnou tečku nebo jiný speciální znak? Umístěte před něj zpětné lomítko. Například \. odpovídá doslovné tečce místo „libovolného znaku“, kterému odpovídá neescapovaná ..

Jaký je rozdíl mezi .* a .*?? .* je hladový a odpovídá co největšímu počtu znaků. .*? je líný a odpovídá co nejmenšímu počtu znaků, přičemž zbytek vzoru stále uspěje.

Proč nástroj uvádí, že text neodpovídá celý, když odpovídá každý řádek? Kontrola celého textu považuje text za jeden řetězec včetně zalomení řádků. Vzor jako \d+ odpovídá každému řádku 12 a 34 samostatně, ale oba řádky spolu se zalomením mezi nimi nejsou tvořeny pouze číslicemi, takže výsledek kontroly celého textu je ne. Chcete-li porovnat text rozložený do několika řádků, musí vzor zahrnout i zalomení řádků, například pomocí [\s\S]+.

Jak ověřím, že celému řetězci odpovídá vzor, nikoli jen jeho části? Na začátek vzoru přidejte ^ a na konec $, například ^[0-9]+$ pro řetězec obsahující pouze číslice.

Odpovídá tento tester pravidlům regexu z jiných programovacích jazyků? Tento nástroj používá engine regulárních výrazů zabudovaný v JavaScriptu. Většina základní syntaxe, například třídy znaků a kvantifikátory, je společná pro jazyky včetně Pythonu, Javy a Perlu, ale některé podrobnosti se liší, takže u vzoru, který funguje zde, není zaručeno stejné chování všude.

Reference

  1. "Regular expression." Wikipedia, Wikimedia Foundation. https://en.wikipedia.org/wiki/Regular_expression
  2. MDN Web Docs. "Regular expressions." Mozilla. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  3. Friedl, J. E. F. (2006). Mastering Regular Expressions. O’Reilly Media.