Regulární výrazy 2011 Martin Bruchanov bruxy.regnet.cz Metaznaky % Sekce 3.2 Mastering regular expression Základní; Rozšířené; Význam dot, ^, $, [⋯], [^⋯]; \{min,max\}; {min,max} \( \); ( ) . (tečka) -- libovolný znak [···] -- množina znaků [^···] -- negovaná množina znaků ( | ) -- možnosti (A|B|C|D) -- množina znaků [ABCD], [A-D] ^ -- začátek řádku/řetězce $ -- konec řádku/řetězce \< \> -- začátek/konec slova \1 \2 ... -- zpětná reference \znak -- potlačí význam Kvantifikátory Kvantifikátor Počet opakování ? minimálně 0krát, maximálně 1krát * minimálně 0krát (maximálně neomezeno) + minimálně 1krát (maximálně neomezeno) *? líné +? líné {m,}? líné {n} právě nkrát {m,n} minimálně mkrát, maximálně nkrát {m,} minimálně mkrát (maximálně neomezeno) (?=···) Positive lookahead. (?!···) Negative lookahead. (?<=···) Positive lookbehind. (??@\^_`{|}~-] Punctuation characters \bTR\eTD [:space:] \s [ \t\r\n\v\f] Whitespace characters \bTR\eTD \S [^ \t\r\n\v\f] Non-whitespace characters \bTR\eTD [:upper:] [A-Z] Uppercase letters \bTR\eTD [:xdigit:] [A-Fa-f0-9] Hexadecimal digits \eTABLEbody Unicode \u2122 \x{2122} \p{charClass} Matches a character that is in a specified Unicode character class or block. \P{charClass} Matches a character that is not in a specified Unicode character class or block. awk Grep -E použije rozšířené regexpy -G použije základní -P perlovské -v negace výrazu -c zobrazí počet nálezů -i ignoruje velikost písmen Perl m/pattern/ matches the specified pattern. s/pattern/pattern/ performs a replace operation. qr/pattern/ returns a Regex object that may be used later. split() splits a string into substrings. Příklady "[^"]*" text v "uvozovkách" \bTABLE\tfx \bTABLEhead \bTR\bTH POSIX \eTH\bTH Perl \eTH\bTH ASCII \eTH\bTH Popis \eTH\eTR \eTABLEhead \bTABLEbody \bTR\bTD \type{[:alnum:]} \eTD\bTD \eTD\bTD \type{[A-Za-z0-9]} \eTD\bTD Alphanumeric characters\eTD\eTR \bTR\bTD \type{[:word:]} \eTD\bTD\type{\w}\eTD\bTD \type{[A-Za-z0-9_]} \eTD\bTD Alphanumeric characters plus "\_"\eTD\eTR \bTR\bTD \eTD\bTD\type{\W}\eTD\bTD \type{[^A-Za-z0-9_]} \eTD\bTD Non-word characters\eTD\eTR \bTR\bTD \type{[:alpha:]} \eTD\bTD \eTD\bTD \type{[A-Za-z]} \eTD\bTD Alphabetic characters\eTD\eTR \bTR\bTD \type{[:blank:]} \eTD\bTD \eTD\bTD \type{[ \t]} \eTD\bTD Space and tab\eTD\eTR \bTR\bTD \eTD\bTD\type{\b}\eTD\bTD \type{[(?<=\W)(?=\w)|(?<=\w)(?=\W)]} \eTD\bTD Word boundaries\eTD\eTR \bTR\bTD \type{[:cntrl:]} \eTD\bTD \eTD\bTD \type{[\x00-\x1F\x7F]} \eTD\bTD Control characters\eTD\eTR \bTR\bTD \type{[:digit:]} \eTD\bTD\type{\d}\eTD\bTD \type{[0-9]} \eTD\bTD Digits\eTD\eTR \bTR\bTD \eTD\bTD\type{\D}\eTD\bTD \type{[^0-9]} \eTD\bTD Non-digits\eTD\eTR \bTR\bTD \type{[:graph:]} \eTD\bTD \eTD\bTD \type{[\x21-\x7E]} \eTD\bTD Visible characters\eTD\eTR \bTR\bTD \type{[:lower:]} \eTD\bTD \eTD\bTD \type{[a-z]} \eTD\bTD Lowercase letters\eTD\eTR \bTR\bTD \type{[:print:]} \eTD\bTD \eTD\bTD \type{[\x20-\x7E]} \eTD\bTD Visible characters and the space character\eTD\eTR %\bTR\bTD \type{[:punct:]} \eTD\bTD \eTD\bTD \type{[\]\[!"#$%&'()*+,./:;<=>?@\^_`{|}~-]} \eTD\bTD Punctuation characters\eTD\eTR \bTR\bTD \type{[:space:]} \eTD\bTD\type{\s}\eTD\bTD \type{[ \t\r\n\v\f]} \eTD\bTD Whitespace characters\eTD\eTR \bTR\bTD \eTD\bTD\type{\S}\eTD\bTD \type{[^ \t\r\n\v\f]} \eTD\bTD Non-whitespace characters\eTD\eTR \bTR\bTD \type{[:upper:]} \eTD\bTD \eTD\bTD \type{[A-Z]} \eTD\bTD Uppercase letters\eTD\eTR \bTR\bTD \type{[:xdigit:]}\eTD\bTD \eTD\bTD \type{[A-Fa-f0-9]} \eTD\bTD Hexadecimal digits\eTD\eTR \eTABLEbody \eTABLE