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
Výsledky Shody
Zadejte vzor a testovací text pro zobrazení výsledků
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á shodua|bOdpovídá buď a nebo b\bOdpovídá pozici hranice slovaDokumentace
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
- 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.
- Zvolte příznaky. Příznaky mění způsob použití vzoru (viz níže).
- Zadejte zkušební text. Zadejte nebo vložte text, ve kterém se má vyhledávat, do pole pro zkušební text.
- 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.
- 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.
- 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říznak | Název | Účinek |
|---|---|---|
g | Globální | Vyhledá všechny shody v textu, místo aby skončil u první. |
i | Nerozlišuje velikost písmen | Ignoruje rozdíly mezi velkými a malými písmeny. |
m | Víceřádkový | Způsobí, že ^ a $ odpovídají začátku a konci každého řádku, nejen začátku a konci celého textu. |
s | Tečka odpovídá všemu | Způ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:
12a5, 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ů
| Symbol | Význam | Příklad | Odpovídá |
|---|---|---|---|
. | Libovolný znak kromě znaku nového řádku | a.c | "abc", "adc", "a1c" |
\d | Libovolná číslice, 0 až 9 | \d{3} | "123", "456" |
\D | Libovolný znak, který není číslicí | \D+ | "abc", "xyz" |
\w | Libovolné písmeno, číslice nebo podtržítko | \w+ | "abc123", "test_123" |
\W | Libovolný znak, který není písmenem, číslicí ani podtržítkem | \W+ | "!@#" |
\s | Libovolný bílý znak | a\sb | "a b" |
\S | Libovolný znak, který není bílý znak | \S+ | "abc" |
Kotvy pozic
| Symbol | Význam | Příklad | Odpovídá |
|---|---|---|---|
^ | Začátek řádku | ^abc | „abc“ na začátku řádku |
$ | Konec řádku | abc$ | „abc“ na konci řádku |
\b | Hranice slova | \bword\b | „word“ jako celé slovo |
Kvantifikátory
| Symbol | Význam | Příklad | Odpovídá |
|---|---|---|---|
* | Nula nebo více výskytů předchozí položky | a*b | "b", "ab", "aab" |
+ | Jeden nebo více výskytů předchozí položky | a+b | "ab", "aab" |
? | Nula nebo jeden výskyt předchozí položky | colou?r | "color", "colour" |
{n} | Přesně n výskytů předchozí položky | a{3} | "aaa" |
{n,} | Alespoň n výskytů předchozí položky | a{2,} | "aa", "aaa" |
{n,m} | Od n do m výskytů předchozí položky | a{2,4} | "aa", "aaa", "aaaa" |
Množiny znaků a skupiny
| Symbol | Význam | Příklad | Odpoví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\ | b | Odpovídá a nebo b | cat\ |
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
- 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). - 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.
- 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.
- 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á.