Regulární výraz: Co to znamená

Co je regulární výraz?

Regex, nebo regulární výrazy, jsou značky odpovídající vzorům programátoři slouží k vyhledávání určitých vzorů v textu. Regulární výrazy mohou hledat téměř cokoli, podle toho, jak je strukturujete; používají je programátoři všude, protože jsou neocenitelní, protože pomáhají počítačům rychle třídit data a odfiltrovat nesmysly, které by jinak mohly způsobit chyby.

Regulární výrazy mají tendenci vypadat strašidelně, zejména pro neprogramátory. Stačí se podívat na toto:

[a-zA-Z0-9 _. + -] + @ [a-zA-Z0-9 _-] + \. [a-zA-Z0-9 _.-] +

Realisticky to vlastně není tak špatné; že jeden odpovídá e-mailovým adresám. Jak uvidíte, výrazy lze rozdělit na jednotlivé znaky, které programu říkají, co má hledat.

Regulární výrazy jsou téměř univerzální. Stejný generál syntax platí ve všech jazycích, pouze s mírnými odchylkami sem a tam. Tato příručka obsahuje příklady z Pythonu a JavaScriptu, stejně jako prostý starý regex. Pokud pracujete s jiným jazykem, nebojte se. Téměř vše bude platit i pro váš zvolený jazyk.

instagram viewer

Základy regexu

Technicky vzato není mnoho věcí, které nelze považovat za regulární výrazy, protože doslovné řetězce textu jsou opravdu jednoduché. Pokud byste měli použít 'abcde' jako regulární výraz, programovací jazyk by hledal tento přesný řetězec.

První dynamičtější shodná postava, na kterou se podíváme, je znak „.“ charakter. V této souvislosti je znak tečky zástupným znakem. Pokud s ním hledáte, váš program vrátí jakýkoli znak, který najde jako shodu.

Co když chcete hledat doslovnou tečku? Ani to není těžké. Chcete-li použít doslovnou tečku, přidejte před ni zpětné lomítko, například: '\.'

Postavy zpětného lomítka

Zpětné lomítko zde však hraje mnohem více rolí. Většina hlavních znaků regulárního výrazu obsahuje zpětné lomítko.

Číslice regulárních výrazů
Hledání číslic pomocí regulárního výrazu v Pythonu.

Podívejte se na několik příkladů:

  • \ d: číslice od 0 do 9
  • \ w: Písmena, číslice a podtržítko "Znaky slova"
  • \ s: Mezery, včetně tabulátorů, nových řádků a běžných mezer

Pokud místo toho u některého z nich použijete velké písmeno, dostanete naopak. Například '\ D' vám ​​dává všechno kromě číslic.

Třídy

The znaky zpětného lomítka jsou dobří, ale stále jsou trochu strnulí. Obecně budete chtít spojit písmena, číslice nebo několik speciálních znaků.

Třídy regulárních výrazů
Používání tříd Regex k vyhledání písmen v Pythonu.

Umístěte znaky, které chcete porovnat, do dvou hranatých závorek „[]“ a váš program se shoduje s jakoukoli z nich. Tomu se říká třída regexu.

[abcd1234]

Výše uvedený příklad je stále neúčinný. Místo toho můžete k určení rozsahu použít pomlčku; například všechna malá písmena:

[a-z]

Můžete také uvést rozsahy. Níže uvedený výraz odpovídá všem písmenům a číslicím:

[a-zA-Z0-9]

Pokud hodláte do sady znaků přidat pomlčku, připevněte ji na konci, abyste zabránili jejímu vyhodnocení. Funguje také s jinými speciálními znaky.

[a-zA-Z0-9 _. + -]

Stejně jako u znaků zpětného lomítka můžete i zde získat inverzní výsledek. Umístěte na začátek třídy znak „^“, abyste je vyloučili z výsledků. Tím se z výsledků vyloučí číslice a několik speciálních znaků:

[^0-9_+.-]

Skupiny

Skupiny používají k oddělení vašeho výrazu sadu závorek. Seskupují data a umožňují vašemu programu cílit a používat jej. Když program odstraní http://' z webové adresy k tomu využívá skupin regexu. Regulární výraz umožňuje cílit na určitá kritéria a skupiny umožňují oddělit jednotlivé sekce.

Skupiny regulárních výrazů
Skupiny Regex pomáhají najít adresy URL v JavaScriptu.

Skupiny vám také umožňují vybrat si mezi jedním nebo druhým vzorem. Zaměstnávají jediný znak „|“ jednat jako „nebo“ ve výrazu. Níže uvedený výraz bude odpovídat některému z těchto: .com, .org, .net, .edu nebo .gov.

\. (com | org | net | edu | gov)

Kvantifikátory

Kvantifikátory jsou přesně to, co zní. Řeknou výrazu množství postavy, kterou hledáte. Toto jsou dostupné kvantifikátory:

  • *: Nula nebo více
  • +: Jeden nebo více
  • ?: Nula nebo jedna
  • {3}: Částka v závorkách

Umístěte kterýkoli z těchto kvantifikátorů na konec znaku nebo třídy, u které chcete určit množství. Tento příklad hledá standardní sedmimístná telefonní čísla:

\ d {3} [. * -] \ d {3} [. * -] \ d {4}

Kotvy a hranice

Regulární výrazy vám umožňují hledat vzory na základě jejich polohy v řetězci textu nebo kolem slova.

Kotvy regulárních výrazů
Kotvy Regex používají umístění k nalezení shody v JavaScriptu.

Toto jsou vaše primární možnosti:

  • ^: Začátek řetězce
  • $: Konec řetězce
  • \ b: Hranice slova (začátek nebo konec slova)

Pokud chcete najít pouze řetězce začínající písmenem, můžete zkusit:

^ [a-zA-Z]

Řekněme, že chcete najít pouze slovo „it“, nikoli slova obsahující písmena I a T; tam byste použili hranice slov.

\ b (i | I) t \ b

Závěrečné myšlenky

Regulární výrazy vám mohou při programování ušetřit spoustu bolestí hlavy. Představte si, že se snažíte napsat logiku, abyste dosáhli některého z příkladů v tomto článku. Byl by to strašný nepořádek. Jakmile se s nimi stanete pohodlnými, pravděpodobně zjistíte, že si opravdu užíváte sílu a flexibilitu regexu.

instagram story viewer