REGEXP aneb příklad ohraničení; regulární výraz v příkladech

Regulární výraz (zkráceně regex nebo regexp; někdy se označuje jako racionální výraz) je posloupnost znaků, která určuje vyhledávací vzor v textu. Obvykle se takové vzory používají v algoritmech pro vyhledávání řetězců pro operace „najít“ nebo „najít a nahradit“ řetězce nebo pro ověřování vstupů. Techniky regulárních výrazů jsou vyvinuty v teoretické informatice a teorii formálních jazyků.

Koncept regulárních výrazů vznikl v 50. letech 20. století, kdy americký matematik Stephen Cole Kleene formalizoval pojem regulárního jazyka. Začaly se běžně používat s nástroji pro zpracování textu v systému Unix. Od 80. let 20. století existují různé syntaxe pro zápis regulárních výrazů, z nichž jedna je standard POSIX a druhá, hojně používaná, je syntaxe jazyka Perl.

Regulární výrazy se používají ve vyhledávacích strojích, v dialogových oknech pro vyhledávání a nahrazování textových procesorů a textových editorů, v nástrojích pro zpracování textu, jako jsou sed a AWK, a při lexikální analýze. Většina univerzálních programovacích jazyků podporuje možnosti regexů buď nativně, nebo prostřednictvím knihoven, včetně například jazyků Python, C, C++, Java a JavaScript.

REGEXP

Regulární výraz pro ověření správného tvaru emailové adresy ve smyslu, že obsahuje akceptovatelné znaky (né, že email kdesi existuje). Emailová adresa může obsahovat pouze písmena (abcdefgh.. kde je se nerozlišují velké a malé písmena), základní sadu znaků („.“ „-“ „_“) a čísla (1, 2, 3, 4, 5..). Verifikační řetězec tedy vytvoříme tak, že bude kontrolova povolené znaky před a za @ (zavináčem) + to samé za tečkou, která vyznačuje národní doménu (.cz)

/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/i

Vizualizace

regexp ohraničení regulární výraz
Regexp ohraničení v regulárním výrazu

Vysvětlivky

Ohraničení textu

Sekvence metaznakůVýznamPříklad vyjádřeníPříklad shody
^Začátek řetězce nebo řádku^abcabc (objevuje se na začátku řetězce nebo řádku)
$Konec řetězce nebo konec řádkuxyz$xyz (objevuje se na konci řetězce nebo řádku)
\bOhraničení slovator\bmotor (shoduje se s tor, pokud je na konci slova)
\BNE ohraničuje slovo\Btor\Bmotorový (odpovídá tor, pokud není na začátku nebo na konci slova)
\<Začátek slova\<polepolesní (odpovídá pouze tehdy, když je na začátku slova)
\>Konec slovalesní\>polesní (odpovídá vždy pouze tehdy, pokud je na konci slova)
regx tabulka ohraničení

Programování

ZnakVýznamPopis
\ddigitčíslo v rozmezí 0 až 9
+plus1 nebo více krát
\d+digit plus1 nebo více čísel
regx tabulka programování

Užitečné

Ignore list fail2ban v příkladech
Webová výuka na webu regexr
Referenční příručka regulárních výrazů

ICTIS.CZ