Whiz Tools

Tester vzorů Regex

Kopírovat

Výsledky shody

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

Uložit vzor

Uložené vzory

Žádné uložené vzory zatím

Příručka symbolů Regex

.Shoduje se s jakýmkoli znakem kromě nového řádku
\dShoduje se s jakýmkoli číslem (0-9)
\DShoduje se s jakýmkoli nečíselným znakem
\wShoduje se s jakýmkoli znakem slova (a-z, A-Z, 0-9, _)
\WShoduje se s jakýmkoli neznakem slova
\sShoduje se s jakýmkoli znakem prázdného místa
\SShoduje 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 shodu
a|bShoduje se buď s a nebo b
\bShoduje se s pozicí hranice slova

Tester 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:

  1. 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.

  2. 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ísmen
    • m (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
  3. Zadejte testovací text: Zadejte text, který chcete testovat proti svému vzoru, do oblasti testovacího textu.

  4. 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
  5. 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"
  6. 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ů

SymbolPopisPříkladShody
.Odpovídá jakémukoli znaku kromě nového řádkua.c"abc", "adc", "a1c" atd.
\dOdpovídá jakémukoli číslu (0-9)\d{3}"123", "456", "789" atd.
\DOdpovídá jakémukoli nečíslu\D+"abc", "xyz" atd.
\wOdpovídá jakémukoli znaku slova (a-z, A-Z, 0-9, _)\w+"abc123", "test_123" atd.
\WOdpovídá jakémukoli neznaku slova\W+"!@#", " + " atd.
\sOdpovídá jakémukoli znaku pro mezerua\sb"a b", "a\tb" atd.
\SOdpovídá jakémukoli neznaku pro mezeru\S+"abc", "123" atd.

Ukazatele pozice

SymbolPopisPříkladShody
^Odpovídá začátku řádku^abc"abc" na začátku řádku
$Odpovídá konci řádkuabc$"abc" na konci řádku
\bOdpovídá hranici slova\bword\b"word" jako celé slovo

Kvantifikátory

SymbolPopisPříkladShody
*Odpovídá 0 nebo více předchozímu znakua*b"b", "ab", "aab" atd.
+Odpovídá 1 nebo více předchozímu znakua+b"ab", "aab", "aaab" atd.
?Odpovídá 0 nebo 1 předchozímu znakucolou?r"color", "colour"
{n}Odpovídá přesně n předchozímu znakua{3}"aaa"
{n,}Odpovídá alespoň n předchozímu znakua{2,}"aa", "aaa", "aaaa" atd.
{n,m}Odpovídá mezi n a m předchozímu znakua{2,4}"aa", "aaa", "aaaa"

Třídění znaků

SymbolPopisPříkladShody
[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

SymbolPopisPříkladShody
(abc)Skupiny více tokenů dohromady a zachytí shodu(abc)+"abc", "abcabc" atd.
a|bOdpovídá buď a nebo bcat|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

  1. 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 \.-]*)*\/?$
  2. Parsování HTML: Extrakce specifických prvků nebo atributů:

    • Najděte všechny tagy obrázků: <img[^>]+src="([^">]+)"
    • Extrakce odkazů: <a[^>]+href="([^">]+)"

Zpracování dat

  1. 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: .*
  2. Parsování CSV: Zpracování hodnot oddělených čárkami s potenciálními citovanými poli:

    • Matcher CSV polí: (?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))

Textové zpracování

  1. 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
  2. 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})?

Programování a kódování

  1. 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*\(
  2. Refaktoring kódu: Najděte vzory, které je třeba aktualizovat:

    • Zastaralé API volání: \.oldMethod\(
    • Nezabezpečené funkce: eval\(

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() a String.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

  1. Friedl, J. E. F. (2006). Mastering Regular Expressions. O'Reilly Media.
  2. Goyvaerts, J., & Levithan, S. (2012). Regular Expressions Cookbook. O'Reilly Media.
  3. "Regulární výraz." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Regular_expression
  4. MDN Web Docs. "Regulární výrazy." Mozilla, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  5. 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ů.

Zpětná vazba