Regex výraz může být bolest. No, někdy!
Pojďme se dozvědět o regulárních výrazech a jejich vzorech. Podíváme se na takové vzorce, které vypadají jako spletitá polévka postav. Uvidíme, co každý znak v regulárním výrazu znamená.
Po přečtení tohoto článku budete moci vytvářet své regulární výrazy a používat je, jak chcete. Na závěr také uvedeme seznam některých online nástrojů pro testování RegEx, abyste si na základě požadavku mohli vytvořit svůj RegEx a otestovat jej pomocí těchto nástrojů.
Table of Contents
Úvod
Regulární výrazy nebo jak je běžně známo – RegEx je jakákoliv sekvence znaků, kterou lze použít jako vzor pro hledání znaků nebo řetězců.
Například – abychom zjistili, zda řetězec nebo fráze obsahuje slovo „jablko“, můžeme použít regulární výraz „/jablko“ k vyhledávání v řetězci. Jako další příklad můžeme použít „/[0-9]” pro kontrolu, zda daný řetězec obsahuje číslo mezi 0 a 9.
Regulární výrazy a jejich použití
Regulární výrazy jsou široce používány pro různé účely v moderních operacích souvisejících s webem. Ověřování webových formulářů, webových vyhledávačů, lexikálních analyzátorů v IDE, textových editorů a editorů dokumentů patří mezi několik příkladů, kde se často používají regulární výrazy.
Všichni jsme mnohokrát použili „CTRL + F“ k vyhledávání v dokumentu nebo části kódu, abychom našli konkrétní slovo, frázi nebo výraz. Tuto operaci lze označit jako velmi běžný příklad použití regulárních výrazů.
Než budeme pokračovat, podívejme se na velmi běžně používaný regulární výraz.
Uhodnete 🤔 níže uvedený RegEX, k čemu se používá?
^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$
Nedělejte si starosti, pokud to nemůžete odhadnout. Jsem si sakra jistý, že na konci tohoto článku budete schopni hádat.
Nejprve začněme s A, B, C RegEx.
Tokeny
Pro začátek se podívejme na různé symboly ve výše uvedeném regulárním výrazu.
^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$
Pokud se podíváme na výše uvedený regulární výraz, vidíme, že se skládá z mnoha symbolů nebo znaků nebo tokenů. Pojďme zjistit, co znamenají:
Žeton
Význam
^
Tento token označuje začátek řetězce.
(…)
To označuje skupinu, kde je zachyceno vše, co je dáno v (…).
[…]
The [] ohraničuje znaky, z nichž kterýkoli lze porovnat. Například – [abc] bude odpovídat buď a nebo b nebo c.
az
Sada malých abeced od a do z. Musíme mít na paměti, že Regex rozlišuje velká a malá písmena.
AZ
Sada velkých písmen od A do Z.
0-9
Číslice od 0 do 9.
_
To bude odpovídat znaku _.
Toto je úniková postava.
.
To odpovídá znaku „.“ doslova. Používá se proto, že symbol „.“ v regulárním výrazu je token sám o sobě, který odpovídá libovolnému znaku
+
Toto je kvantifikátor. To odpovídá jednomu nebo více znakům, se kterými je použit. Například a+ znamená jeden nebo více výskytů znaku a.
–
To bude odpovídat znaku „-“.
@
To bude odpovídat znaku „@“.
{}
Toto je další kvantifikátor. Používá se k označení počtu výskytů znaku. Například a{3} znamená přesně 3 a.
$
To označuje konec řetězce.
Rozdělení daného vzoru Regex
Nyní, vyzbrojeni těmito předběžnými znalostmi tokenů, zkusme dekódovat výše uvedený regulární výraz:
- ^([a-zA-Z0-9_-.]+) znamená, že hledáme řetězec, který začíná alespoň jedním nebo více velkými nebo malými alfanumerickými znaky, podtržítky, spojovníky nebo tečkami. Vzoru bude odpovídat například vše, co vypadá podobně jako user_name.01. Musíme si pamatovat, že zde není nutné zahrnout všechny symboly, pouze jeden znak [a-zA-Z0-9_-.] udělám.
- Znak @ odpovídá jednomu výskytu @. Přidání k předchozímu příkladu, něco jako [email protected] se bude hodit.
- ([a-zA-Z0-9_-.]+) je podobný prvnímu bodu. To také znamená, že hledáme řetězec, který obsahuje alespoň jeden nebo více alfanumerických znaků, podtržítka, spojovníky nebo tečky. Přidání k příkladu, [email protected] se sem vejde.
- Jak jste již možná uhodli, naznačujeme vzor e-mailu. Posouvat se, . odpovídá singlu „.“ charakter. Pokud budeme pokračovat v probíhajícím příkladu, něco jako [email protected]
- ([a-zA-Z]{2,5})$ to znamená, že řetězec by měl končit 2 až 5 abecedními znaky buď velkými nebo malými písmeny. Pokud k předchozímu příkladu přidáme .com, můžeme získat [email protected]což je běžný vzor e-mailového řetězce.
Kombinací všech výše uvedených skutečností vidíme, že hledáme řetězec e-mailové adresy. Nyní můžeme tento výraz použít k ověření libovolného e-mailového ID. Pokud se naše testovací e-mailové ID shoduje s tímto vzorem, můžeme říci, že je to platné e-mailové ID.
PS – Toto je vzor pro nejběžnější e-mailová ID na webu.
Typy tokenů
Mnoho tokenů lze použít v různých kombinacích v rámci regulárního výrazu k popisu široké škály výrazů. Níže se podíváme na různé typy tokenů, které se používají v regulárních výrazech. Dále se také podíváme na nejčastěji používané tokeny v každé kategorii.
Základní tokeny
Začněme základními tokeny. Tyto tokeny se používají téměř s každým regulárním výrazem. Proto se o nich musíme nejprve dozvědět.
Žeton
Význam
r
To odpovídá znaku návratu vozíku.