Regulárny výraz: Čo to znamená

Čo je regulárny výraz?

Regex, príp regulárne výrazy, sú značky zodpovedajúce značkám, ktoré programátorov slúži na vyhľadanie určitých vzorov v texte. Regulárne výrazy môžu vyhľadávať takmer všetko, podľa toho, ako ich štruktúrujete; používajú ich všade programátori, pretože sú neoceniteľné, pretože pomáhajú počítačom rýchlo triediť údaje a odfiltrovať nezmysly, ktoré by inak mohli spôsobiť chyby.

Regulárne výrazy zvyknú pôsobiť strašidelne, najmä pre neprogramátorov. Stačí sa pozrieť na toto:

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

Realisticky to nie je také zlé; že sa zhoduje s e-mailovými adresami. Ako uvidíte, výrazy je možné rozdeliť na jednotlivé znaky, ktoré všetky informujú program o tom, čo má hľadať.

Regulárne výrazy sú takmer univerzálne. Ten istý generál syntax platí pre všetky jazyky, iba s miernymi obmenami tu a tam. Táto príručka obsahuje príklady z jazyka Python a JavaScript, ako aj obyčajný starý regulárny výraz. Ak pracujete s iným jazykom, nebojte sa. Takmer všetko bude platiť aj pre váš jazyk, ktorý si vyberiete.

instagram viewer

Základy regulárneho výrazu

Technicky nie je veľa vecí, ktoré by sa nedali považovať za regulárne výrazy, pretože doslovné reťazce textu sú skutočne jednoduché. Ak by ste použili ako regulárny výraz reťazec „abcde“, programovací jazyk by hľadal tento presný reťazec.

Prvou dynamickejšou zhodnou postavou, ktorú si pozrieme, je znak „.“ znak. V tomto kontexte je bodkový znak zástupným znakom. Ak s ním hľadáte, váš program vráti akýkoľvek znak, ktorý nájde, ako zhodu.

Takže, čo ak chcete hľadať doslova bodku? To tiež nie je ťažké. Ak chcete použiť doslova bodku, pridajte pred ňu spätné lomítko, napríklad takto: '\.'

Postavy spätného lomítka

Spätné lomítko tu však hrá oveľa viac rolí. Väčšina hlavných znakov regulárneho výrazu obsahuje spätné lomítko.

Číslice s regulárnym výrazom
Hľadanie číslic pomocou regulárneho výrazu v Pythone.

Zopár príkladov:

  • \ d: číslice od 0 do 9
  • \ w: Písmená, číslice a podčiarkovník „Znaky slova“
  • \ s: Prázdne znaky, vrátane tabulátorov, nových riadkov a bežných medzier

Ak namiesto niektorého z týchto písmen použijete veľké písmeno, dostanete reverz. Napríklad „\ D“ vám dáva všetko okrem číslic.

Triedy

The znaky spätného lomítka sú dobré, ale stále sú akosi strnulé. Spravidla budete chcieť spojiť písmená, číslice alebo niekoľko špeciálnych znakov.

Triedy regulárnych výrazov
Používanie tried Regex na vyhľadanie písmen v Pythone.

Znaky, ktoré chcete zhodovať, umiestnite do štvorcových zátvoriek „[]“ a váš program sa zhoduje s niektorými z nich. Toto sa nazýva trieda regulárneho výrazu.

[abcd1234]

Vyššie uvedený príklad je stále neúčinný. Namiesto toho môžete na určenie rozsahu použiť pomlčku; napríklad všetky malé písmená:

[a-z]

Môžete tiež uviesť rozsahy. Nasledujúci výraz sa zhoduje so všetkými písmenami a číslicami:

[a-zA-Z0-9]

Ak chcete do svojej sady znakov zahrnúť pomlčku, na konci ju prilepte, aby ste zabránili jej vyhodnoteniu. Funguje to aj s inými špeciálnymi znakmi.

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

Rovnako ako v prípade znakov s opačným lomítkom, aj tu môžete získať inverzný výsledok. Ak chcete vylúčiť výsledky z výsledkov, umiestnite na začiatok triedy znak „^“. To z výsledkov vylúči číslice a niekoľko špeciálnych znakov:

[^0-9_+.-]

Skupiny

Skupiny používajú na rozdelenie vášho výrazu množinu zátvoriek. Zoskupujú údaje, čo umožňuje vášmu programu zamerať sa a používať ho. Keď program odstráni http://' z webovej adresy to dosahuje pomocou skupín regulárneho výrazu. Regulárny výraz umožňuje zacieliť na určité kritériá a skupiny ho nechajú oddeliť jednotlivé sekcie.

Skupiny regulárnych výrazov
Skupiny Regex pomáhajú nájsť adresy URL v JavaScripte.

Skupiny vám tiež umožňujú vybrať si medzi jedným alebo druhým vzorom. Zamestnávajú jediný znak „|“ konať vo výraze ako „alebo“. Výraz uvedený nižšie sa bude zhodovať s ktorýmkoľvek z týchto formátov: .com, .org, .net, .edu alebo .gov.

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

Kvantifikátory

Kvantifikátory sú presne také, aké znejú. Povedia výrazu množstvo postavy, ktorú hľadáte. Toto sú dostupné kvantifikátory:

  • *: Nula alebo viac
  • +: Jeden alebo viac
  • ?: Nula alebo jedna
  • {3}: suma v zátvorkách

Ktorýkoľvek z týchto kvantifikátorov umiestnite na koniec znaku alebo triedy, ktorej počet chcete určiť. Tento príklad hľadá štandardné sedemmiestne telefónne čísla:

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

Kotvy a hranice

Regulárne výrazy vám umožňujú vyhľadávať vzory na základe ich polohy v reťazci textu alebo okolo slova.

Kotvy regulárneho výrazu
Kotvy Regex používajú umiestnenie na vyhľadanie zhody v JavaScripte.

Toto sú vaše primárne možnosti:

  • ^: Začiatok reťazca
  • $: Koniec reťazca
  • \ b: Hranica slova (začiatok alebo koniec slova)

Ak chcete nájsť iba reťazce, ktoré sa začínajú písmenom, môžete vyskúšať:

^ [a-zA-Z]

Povedzme, že chcete nájsť iba slovo „to“, nie slová obsahujúce písmená I a T; tam by ste použili hranice slov.

\ b (i | I) t \ b

Záverečné myšlienky

Regulárne výrazy vám môžu pri programovaní ušetriť kopu bolesti hlavy. Predstavte si, že sa snažíte napísať logiku, aby ste splnili niektorý z príkladov v tomto článku. Bol by to hrozný neporiadok. Len čo sa s nimi stanete pohodlnými, pravdepodobne zistíte, že si skutočne užívate silu a flexibilitu regulárneho výrazu.