Regulárny výraz

Regulárny výraz (skrátene aj regexp alebo regex) je textový reťazec, ktorý opisuje alebo pasuje na množinu reťazcov, na základe určitých syntaktických pravidiel. Regulárne výrazy sú používané v mnohých textových editoroch a utilitách na hľadanie a manipuláciu s textom podľa určitých vzorov. Mnoho programovacích jazykov podporuje regulárne výrazy na prácu s reťazcami. Napríklad Perl a Tcl majú zabudovanú silnú podporu pre regulárne výrazy priamo v svojej syntaxi. Množstvo utilít (vrátane editora sed a filtra grep) poskytovaných distribúciami Unixu patrilo medzi prvé, ktoré spopularizovali koncept regulárnych výrazov.

VyužitieUpraviť

Najčastejšie využitie je:

  • vyhľadávanie textu
    • zistenie, či vstupní text vyhovuje zadanému regulárnemu výrazu, alebo
    • zistenie pozície vo vstupnom texte, kde sa nachádza zhoda s regulárnym výrazom
  • manipulácia s textom
    • zámena resp. zmena textu
    • výber všetkých zhodných výskytov so zadefinovaným regulárnym výrazom

Definované triedy alebo množiny znakovUpraviť

Pre zjednodušené zadávanie regulárnych výrazov v nich existujú aj definované aj tzv. triedy alebo množiny znakov. V nasledujúcej tabuľke je ich základný zoznam a stručný popis.

Triedy resp. množiny znakov
Trieda znakov Význam
\w Písmeno alebo číslica z množiny (a-zA-Z_0-9)
\W Iný znak ako písmeno alebo číslica
\s "biely znak" (Whitespace) čiže znak, ktorý v informatike predstavuje biele miesto, jednoducho nie je priamo viditeľný.

Príkladom takéhoto znaku môže byť napr. znak medzery, znak tabulátora alebo prípadne iného riadiaceho znaku z ASCII.

medzera a \f \n\ \r \t \v viď. nižšie v tabuľke

\S Iný ako tzv. "biely znak" (Non whitespaces)
\d Číslica (Decimal Digit) čiže znaky 0 až 9
\D Iný znako ako číslica (Non decimal digit)
\t znak tabulátora
\r Carriage Return je špeciálnym riadiacim znakom slúžiacim na návrat kurzora na začiatok riadku
\v Vertical Tab
\f Form Feed
\n Nový riadok (New Line)
\e Escape

PoužitieUpraviť

Keď hľadáme nejaké slovo ale nepoznáme jeho presné znenie.

Jednoduchý príklad:

Hľadáme slovo Bill ale nevieme či má 2 l alebo 2 i. Regulárny výraz v takom prípade je: Bii?ll?. Tento výraz nájde Bill, Biil, Bil a Biill. Znamienko ? znamená „prave jeden výskyt alebo ziaden“.