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 nabízí čtyři ze standardních příznaků JavaScriptu:

PříznakNázevÚčinek
gGlobálníVyhledá všechny shody v textu, místo aby skončil u první.
iNerozlišuje velikost 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, nejen začátku a konci celého textu.
sTečka odpovídá všemuZpůsobí, že . odpovídá také znakům nového řádku.

Příznaky se vybírají z rozbalovací nabídky. Obsahuje každý příznak samostatně i několik přednastavených kombinací, které zahrnují g, například gi pro globální a nerozlišující velikost písmen, nebo gms pro globální, víceřádkový příznak a příznak „tečka odpovídá všemu“ dohromady.

Jak nástroj vyhledává shody

Vyhledávací mechanismus 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í nabídce. 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.

Aby nástroj ověřil, zda vzor odpovídá celému textu, uzavře vzor do nezachytávající skupiny a ukotví ho: ^(?:pattern)$. Seskupení je důležité, protože | (alternace) váže slaběji než kotvy. Bez skupiny vzor jako cat|dog ukotvený jako ^cat|dog$ by ve skutečnosti znamenal „začíná na cat, nebo končí na dog“, což není totéž jako „celý text je cat nebo dog“. Kontrola používá vybrané příznaky kromě g a m. Vynechání m udržuje ^ a $ vázané na začátek a konec celého textu, takže vzor, který odpovídá jen jednomu řádku víceřádkového textu, se nepočítá jako shoda s celým textem.

Praktický příklad

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, 0 až 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"
a\bOdpovídá a nebo bcat\

Je dobré znát ještě dvě funkce. Dopředný náhled (lookahead), zapisovaný a(?=b), odpovídá znaku „a“ pouze tehdy, když po něm následuje „b“, aniž by „b“ zahrnul do shody. Zpětný náhled (lookbehind), zapisovaný (?<=a)b, odpovídá znaku „b“ pouze tehdy, když stojí bezprostředně za „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“. Je to jednoduchá kontrola, nikoli ú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 chamtivý (greedy) a odpovídá co nejvíce znakům. .*? je líný (lazy) a odpovídá co nejméně znakům, přičemž zbytek vzoru může stále uspět.

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. MDN Web Docs. Regular expressions. Průvodce regulárními výrazy — příznaky JavaScriptu g, i, m (^ a $ odpovídají každému řádku) a s (. odpovídá i znakům nového řádku).
  2. MDN Web Docs. Assertions. Aserce v regulárních výrazech — dopředný náhled odpovídá x pouze tehdy, když po x následuje y; zpětný náhled odpovídá x pouze tehdy, když před x stojí y.
  3. MDN Web Docs. Quantifiers. Kvantifikátory regulárních výrazů — kvantifikátory jsou ve výchozím stavu chamtivé; koncový znak ? je činí nechamtivými.
  4. Resnick, P. (ed.). RFC 5322: Internet Message Format. RFC Editor, 2008. RFC 5322 — standardní syntaxe adres, jejíž lokální část povoluje znaky jako ! # ' a *, které základní vzor odmítá.