Tester vzorů Regex
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
Žádné uložené vzory zatím
Příručka symbolů Regex
.
Shoduje se s jakýmkoli znakem kromě nového řádku\d
Shoduje se s jakýmkoli číslem (0-9)\D
Shoduje se s jakýmkoli nečíselným znakem\w
Shoduje se s jakýmkoli znakem slova (a-z, A-Z, 0-9, _)\W
Shoduje se s jakýmkoli neznakem slova\s
Shoduje se s jakýmkoli znakem prázdného místa\S
Shoduje se s jakýmkoli znakem, který není prázdným místem^
Shoduje se se začátkem řádku$
Shoduje se s koncem řádku*
Shoduje se s 0 nebo více předchozím znakem+
Shoduje se s 1 nebo více předchozím znakem?
Shoduje se s 0 nebo 1 předchozím znakem{n}
Shoduje se přesně s n předchozími znaky{n,}
Shoduje se alespoň s n předchozími znaky{n,m}
Shoduje se mezi n a m předchozími znaky[abc]
Shoduje se s jakýmkoli z znaků v závorkách[^abc]
Shoduje se s jakýmkoli znakem, který není v závorkách(abc)
Skupiny více tokenů dohromady a zachycuje shodua|b
Shoduje se buď s a nebo b\b
Shoduje se s pozicí hranice slovaTester a validátor regex vzorů
Úvod
Tester vzorů regulárních výrazů (regex) je nezbytným nástrojem pro vývojáře, datové analytiky a každého, kdo pracuje s textovým zpracováním. Tento komplexní validátor vzorů regex vám umožňuje vytvářet, testovat a zdokonalovat regulární výrazy v reálném čase, poskytující okamžitou vizuální zpětnou vazbu na shody vzorů. Ať už validujete e-mailové adresy, parsujete logy nebo extrahujete specifická data z textu, náš tester regexu urychluje proces vývoje a ladění a činí ho intuitivnějším.
Regulární výrazy jsou mocné sekvence pro shodu vzorů, které umožňují sofistikované vyhledávání textu, validaci a manipulaci. Jejich syntaxe však může být složitá a obtížně ovladatelná. Tento tester vzorů regex zjednodušuje proces tím, že zvýrazňuje shody, jakmile píšete, validuje syntaxi vzoru a umožňuje vám ukládat často používané vzory pro budoucí použití.
Jak používat tester vzorů regex
Používání našeho validátoru vzorů regex je jednoduché a intuitivní. Postupujte podle těchto kroků, abyste začali:
-
Zadejte vzor regulárního výrazu: Zadejte svůj regex vzor do určeného vstupního pole. Nástroj validuje váš vzor v reálném čase a upozorní vás na jakékoli syntaktické chyby.
-
Vyberte příznaky regexu: Zvolte vhodné příznaky pro svůj vzor:
g
(Globální): Najde všechny shody, místo aby se zastavil po první shoděi
(Bez ohledu na velikost písmen): Způsobí, že vzor nebude závislý na velikosti písmenm
(Víceřádkový): Způsobí, že^
a$
odpovídají začátku/konce každého řádku- Různé kombinace těchto příznaků jsou k dispozici v rozbalovací nabídce
-
Zadejte testovací text: Zadejte text, který chcete testovat proti svému vzoru, do oblasti testovacího textu.
-
Zobrazte výsledky v reálném čase: Jakmile píšete, nástroj automaticky:
- Zvýrazňuje všechny shody vzoru v testovacím textu
- Zobrazuje celkový počet nalezených shod
- Ukazuje, zda vzor odpovídá celému textu
-
Uložte užitečné vzory: Pro vzory, které používáte často:
- Zadejte popisný název pro svůj vzor
- Klikněte na tlačítko "Uložit"
- Přistupujte k uloženým vzorům z části "Uložené vzory"
-
Kopírujte výsledky: Použijte tlačítko "Kopírovat shody" pro zkopírování veškerého odpovídajícího textu do schránky pro použití v jiných aplikacích.
Rozhraní je rozděleno do dvou hlavních panelů: vstupního panelu, kde zadáváte svůj vzor a testovací text, a výsledkového panelu, který zobrazuje shody a informace o vzoru.
Základy regulárních výrazů
Regulární výrazy používají speciální znaky a sekvence k definování vyhledávacích vzorů. Zde je průvodce základními symboly regexu podporovanými naším nástrojem:
Shoda znaků
Symbol | Popis | Příklad | Shody |
---|---|---|---|
. | Odpovídá jakémukoli znaku kromě nového řádku | a.c | "abc", "adc", "a1c" atd. |
\d | Odpovídá jakémukoli číslu (0-9) | \d{3} | "123", "456", "789" atd. |
\D | Odpovídá jakémukoli nečíslu | \D+ | "abc", "xyz" atd. |
\w | Odpovídá jakémukoli znaku slova (a-z, A-Z, 0-9, _) | \w+ | "abc123", "test_123" atd. |
\W | Odpovídá jakémukoli neznaku slova | \W+ | "!@#", " + " atd. |
\s | Odpovídá jakémukoli znaku pro mezeru | a\sb | "a b", "a\tb" atd. |
\S | Odpovídá jakémukoli neznaku pro mezeru | \S+ | "abc", "123" atd. |
Ukazatele pozice
Symbol | Popis | Příklad | Shody |
---|---|---|---|
^ | Odpovídá začátku řádku | ^abc | "abc" na začátku řádku |
$ | Odpovídá konci řádku | abc$ | "abc" na konci řádku |
\b | Odpovídá hranici slova | \bword\b | "word" jako celé slovo |
Kvantifikátory
Symbol | Popis | Příklad | Shody |
---|---|---|---|
* | Odpovídá 0 nebo více předchozímu znaku | a*b | "b", "ab", "aab" atd. |
+ | Odpovídá 1 nebo více předchozímu znaku | a+b | "ab", "aab", "aaab" atd. |
? | Odpovídá 0 nebo 1 předchozímu znaku | colou?r | "color", "colour" |
{n} | Odpovídá přesně n předchozímu znaku | a{3} | "aaa" |
{n,} | Odpovídá alespoň n předchozímu znaku | a{2,} | "aa", "aaa", "aaaa" atd. |
{n,m} | Odpovídá mezi n a m předchozímu znaku | a{2,4} | "aa", "aaa", "aaaa" |
Třídění znaků
Symbol | Popis | Příklad | Shody |
---|---|---|---|
[abc] | Odpovídá jakémukoli z znaků v závorkách | [aeiou] | "a", "e", "i", "o", "u" |
[^abc] | Odpovídá jakémukoli znaku, který není v závorkách | [^aeiou] | Jakýkoli znak kromě "a", "e", "i", "o", "u" |
[a-z] | Odpovídá jakémukoli znaku v rozsahu | [a-z] | Jakýkoli malý písmeno |
Skupinování a alternace
Symbol | Popis | Příklad | Shody |
---|---|---|---|
(abc) | Skupiny více tokenů dohromady a zachytí shodu | (abc)+ | "abc", "abcabc" atd. |
a|b | Odpovídá buď a nebo b | cat|dog | "cat", "dog" |
Pokročilé vzory regex
Jakmile zvládnete základy, můžete vytvářet sofistikovanější vzory pro řešení složitých textových zpracovatelských výzev:
Validace e-mailu
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Tento vzor validuje e-mailové adresy tím, že zajišťuje, že dodržují standardní formát: uživatelské jméno@doména.tld.
Validace URL
^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
Tento vzor validuje URL, včetně těch s nebo bez protokolu http/https.
Validace telefonního čísla (formát USA)
^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
Tento vzor odpovídá telefonním číslům v USA v různých formátech: (123) 456-7890, 123-456-7890 nebo 1234567890.
Validace data (YYYY-MM-DD)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
Tento vzor validuje data ve formátu YYYY-MM-DD, s základní validací pro rozsahy měsíců a dnů.
Lookahead a lookbehind
Lookahead a lookbehind aserce umožňují odpovídat vzorům pouze tehdy, pokud jsou následovány nebo předcházeny jiným vzorem:
- Pozitivní lookahead:
a(?=b)
odpovídá "a" pouze pokud je následováno "b" - Negativní lookahead:
a(?!b)
odpovídá "a" pouze pokud není následováno "b" - Pozitivní lookbehind:
(?<=a)b
odpovídá "b" pouze pokud je předcházeno "a" - Negativní lookbehind:
(?<!a)b
odpovídá "b" pouze pokud není předcházeno "a"
Práce s příznaky regexu
Náš tester regexu podporuje různé příznaky, které mění způsob, jakým jsou vzory shodovány:
- g (Globální): Najde všechny shody, místo aby se zastavil po první shodě
- i (Bez ohledu na velikost písmen): Způsobí, že vzor nebude závislý na velikosti písmen
- m (Víceřádkový): Způsobí, že
^
a$
odpovídají začátku/konce každého řádku - Kombinace: Můžete kombinovat příznaky pro složitější požadavky na shodu
Případové použití pro testování vzorů regex
Regulární výrazy mají nespočet praktických aplikací v různých oblastech:
Webový vývoj
-
Validace formulářů: Zajistěte, aby uživatelské vstupy odpovídaly požadovaným formátům:
- E-mailové adresy:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
- Hesla (s požadavky na složitost):
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
- URL:
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
- E-mailové adresy:
-
Parsování HTML: Extrakce specifických prvků nebo atributů:
- Najděte všechny tagy obrázků:
<img[^>]+src="([^">]+)"
- Extrakce odkazů:
<a[^>]+href="([^">]+)"
- Najděte všechny tagy obrázků:
Zpracování dat
-
Analýza souborů logů: Extrakce informací z položek logu:
- IP adresy:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
- Časové razítka:
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
- Chybové zprávy:
ERROR: .*
- IP adresy:
-
Parsování CSV: Zpracování hodnot oddělených čárkami s potenciálními citovanými poli:
- Matcher CSV polí:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
- Matcher CSV polí:
Textové zpracování
-
Najít a nahradit: Identifikace vzorů pro nahrazení:
- Odstranit HTML tagy:
<[^>]*>
- Formátování telefonních čísel:
(\d{3})(\d{3})(\d{4})
→($1) $2-$3
- Odstranit HTML tagy:
-
Extrakce obsahu: Vytáhněte specifické informace z nestrukturovaného textu:
- Extrakce dat:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
- Najít peněžní hodnoty:
\$\d+(?:\.\d{2})?
- Extrakce dat:
Programování a kódování
-
Syntax highlighting: Identifikace jazykových konstrukcí:
- JavaScript proměnné:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
- Definice funkcí:
function\s+([a-zA-Z_$][\w$]*)\s*\(
- JavaScript proměnné:
-
Refaktoring kódu: Najděte vzory, které je třeba aktualizovat:
- Zastaralé API volání:
\.oldMethod\(
- Nezabezpečené funkce:
eval\(
- Zastaralé API volání:
Ukládání a správa vzorů
Náš tester vzorů regex zahrnuje systém správy vzorů, který vám umožňuje ukládat a znovu používat vaše často používané výrazy:
Kdy ukládat vzory
Zvažte uložení vzorů, které:
- Používáte často napříč různými projekty
- Jsou složité a obtížně zapamatovatelné
- Slouží specifickým účelům validace ve vaší práci
- Jste zdokonalili po více iteracích
Nejlepší praktiky pro názvy vzorů
Při ukládání vzorů používejte popisné názvy, které:
- Ukazují účel vzoru (např. "Validátor e-mailu")
- Zmiňují specifické formáty (např. "Telefonní číslo USA")
- Zahrnují informace o verzi, pokud na vzorech iterujete (např. "Validátor URL v2")
- Jsou stručné, ale informativní
Organizace vzorů
Organizujte své uložené vzory podle:
- Funkce (validace, extrakce, nahrazení)
- Domény (webový vývoj, zpracování dat)
- Složitosti (základní, pokročilé)
- Frekvence použití
Sdílení vzorů
Ačkoli náš nástroj přímo nepodporuje sdílení vzorů mezi uživateli, můžete:
- Zkopírovat vzory pro sdílení s kolegy
- Dokumentovat své vzory ve sdíleném repozitáři
- Zahrnout popisy vzorů do projektové dokumentace
Řešení běžných problémů s regexem
I zkušení vývojáři se setkávají s výzvami s regulárními výrazy. Zde jsou řešení běžných problémů:
Syntaktické chyby
Pokud váš vzor vykazuje chybu validace:
- Zkontrolujte, zda nejsou neuzavřené závorky, hranaté závorky nebo složené závorky
- Ujistěte se, že speciální znaky jsou správně escapovány zpětným lomítkem
- Ověřte, že kvantifikátory mají předchozí znak nebo skupinu
- Hledejte neplatnou syntaxi znakové třídy
Problémy s výkonem
Pokud je váš regex pomalý nebo způsobuje zpoždění prohlížeče:
- Vyhněte se nadměrnému používání vnořených kvantifikátorů (např.
(a+)+
) - Buďte opatrní s lookaheads a lookbehinds ve velkých textech
- Zvažte použití konkrétnějších vzorů místo širokých
- Rozdělte složité vzory na menší, lépe spravovatelné části
Neočekávané shody
Pokud váš vzor odpovídá nežádoucímu textu:
- Použijte ukazatele (
^
a$
) k odpovídání celých řetězců - Učiňte znakové třídy konkrétnější
- Přidejte hranice slova (
\b
) tam, kde je to vhodné - Použijte negativní lookaheads k vyloučení určitých vzorů
Nenašly se žádné shody
Pokud váš vzor neodpovídá očekávanému textu:
- Zkontrolujte problémy s citlivostí na velikost písmen (zvažte použití příznaku
i
) - Ověřte, že speciální znaky jsou správně escapovány
- Testujte svůj vzor nejprve na zjednodušených příkladech
- Ujistěte se, že používáte správné znakové třídy
Alternativy k regulárním výrazům
I když je regex mocný, není vždy nejlepší řešení pro každý úkol textového zpracování:
Metody řetězců
Pro jednoduché textové operace jsou nativní metody řetězců často jasnější a efektivnější:
String.indexOf()
pro vyhledávání podřetězcůString.startsWith()
aString.endsWith()
pro kontrolu hranic řetězcůString.split()
pro základní tokenizaci
Specializované analyzátory
Pro strukturované formáty dat jsou specializované analyzátory robustnější:
- JSON analyzátory pro JSON data
- XML/HTML analyzátory pro značkovací jazyky
- CSV analyzátory pro tabulková data
Zpracování přirozeného jazyka (NLP)
Pro pochopení významu textu spíše než pouze vzorů:
- Nástroje pro analýzu sentimentu
- Rozpoznávání pojmenovaných entit
- Označování částí řeči
Kdy zvolit alternativy
Zvažte alternativy k regexu, když:
- Je struktura textu vysoce pravidelná a jednoduchá
- Formát má k dispozici standardizovaný analyzátor
- Potřebujete pochopit sémantický význam
- Je výkon kritický pro velmi velké texty
Často kladené otázky
Co je regulární výraz?
Regulární výraz (regex) je sekvence znaků, která definuje vyhledávací vzor. Tyto vzory lze použít pro vyhledávání řetězců, shodu a operace manipulace s textem.
Proč potřebuji tester vzorů regex?
Tester vzorů regex vám pomáhá vyvíjet a ladit regulární výrazy tím, že poskytuje okamžitou vizuální zpětnou vazbu na shody, validuje syntaxi vzoru a umožňuje vám experimentovat s různými vzory a příznaky, aniž byste je museli nejprve implementovat v kódu.
Jak mohu odpovídat na doslovný speciální znak, jako je tečka nebo hvězdička?
Chcete-li odpovídat na doslovné speciální znaky, které obvykle mají speciální význam v regexu, musíte je escapovat zpětným lomítkem. Například pro odpovídání na doslovnou tečku použijte \.
místo pouze .
.
Jaký je rozdíl mezi .*
a .*?
v regex vzoru?
.*
je hladový kvantifikátor, který odpovídá co nejvíce znakům, zatímco .*?
je líný (nehladový) kvantifikátor, který odpovídá co nejméně znakům. Toto rozlišení je důležité, když chcete najít nejkratší shodu spíše než nejdelší.
Mohu použít tento tester regex pro vzory v jakémkoli programovacím jazyce?
I když je základní syntaxe regexu podobná napříč mnoha jazyky, existují jemné rozdíly v implementaci. Náš tester používá regex engine JavaScriptu, který je kompatibilní s mnoha webovými jazyky, ale může mít rozdíly od regexu v jazycích jako Python, Java nebo Perl.
Jak mohu validovat celý řetězec pomocí regexu?
Chcete-li validovat, že celý řetězec odpovídá vzoru, použijte ukazatel ^
na začátku a ukazatel $
na konci vašeho regexu. Například ^[0-9]+$
bude odpovídat pouze řetězcům, které se skládají výhradně z číslic.
Co jsou zachycovací skupiny a jak je mohu použít?
Zachycovací skupiny, vytvořené pomocí závorek ()
, vám umožňují extrahovat specifické části shody textu. V našem testeru můžete vidět všechny shody včetně zachycených skupin. V programovacích jazycích obvykle můžete přistupovat k těmto zachycením prostřednictvím indexování výsledku shody.
Jak mohu učinit své regex vzory efektivnějšími?
Pro zlepšení efektivity regexu: buďte konkrétní s znakovými třídami, vyhněte se zbytečným zachycovacím skupinám (použijte nezachycovací skupiny (?:...)
, když je to možné), omezte používání lookaheads/lookbehinds, a vyhněte se katastrofickým zpětným sledováním vzorů, jako jsou vnořené kvantifikátory.
Jaké jsou nejběžnější chyby regexu, kterým se vyhnout?
Mezi běžné chyby patří: neescapování speciálních znaků, vytváření vzorů, které jsou příliš hladové, zapomínání na ukotvení vzorů (s ^
a $
), a psaní příliš složitých výrazů, které jsou obtížné na údržbu.
Může regex zpracovávat vnořené struktury, jako je HTML?
Regulární výrazy nejsou dobře přizpůsobeny pro parsování vnořených struktur, jako je HTML nebo XML. Ačkoli můžete vytvořit regex vzory pro jednoduché shody HTML, je obecně lepší použít specializovaný HTML parser pro složité zpracování HTML.
Odkazy
- Friedl, J. E. F. (2006). Mastering Regular Expressions. O'Reilly Media.
- Goyvaerts, J., & Levithan, S. (2012). Regular Expressions Cookbook. O'Reilly Media.
- "Regulární výraz." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Regular_expression
- MDN Web Docs. "Regulární výrazy." Mozilla, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
- RegExr: Učte se, vytvářejte a testujte RegEx. https://regexr.com/
Vyzkoušejte náš tester vzorů regex ještě dnes, abyste zjednodušili své úkoly textového zpracování, validovali formáty vstupu a extrahovali smysluplná data z nestrukturovaného textu. Ať už jste začátečník, který se učí základy regulárních výrazů, nebo zkušený vývojář pracující na složitém shodování vzorů, náš nástroj poskytuje funkce, které potřebujete k efektivnímu vytváření, testování a zdokonalování vašich regex vzorů.