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žitie
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 znakov
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.
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žitie
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“.