Regulární výrazy
Regulární výrazy
3. Význam metaznaků
Příkaz grep lze v základní podobě použít s argumentem hledaného výrazu bez metaznaků. Jedná se o tzv. plain match, kdy dochází k vyhledání zadaného výrazu kdekoliv v každém řádku vstupu.
Metaznak ^ zajistí vyhledávání regulárního výrazu na začátku řádky.
Metaznak $ zajistí vyhledávání regulárního výrazu na konci řádky.
Metaznak . nahrazuje libovolný jeden znak.
Metaznaky [ ] slouží pro definici znaků a znakových tříd.
znaky |
|
význam |
---|---|---|
[abc] |
|
sada vybraných znaků
|
[^abc] |
|
negace sady vybraných znaků, tzn. všechny ostatní než uvedené
|
[a-e] |
|
sada znaků daná rozsahem
|
[^a-e] |
|
negace sady znaků dané rozsahem, tzn. všechny ostatní než uvedený rozsah |
znaková třída
|
|
význam |
---|---|---|
[:alpha:] |
|
písmena [A-Za-z]
|
[:lower:] |
|
malá písmena [a-z]
|
[:upper:] |
|
velká písmena [A-Z]
|
[:digit:] |
|
číslice [0-9]
|
[:alnum:] |
|
alfanumerické znaky [A-Za-z0-9]
|
[:word:] |
|
alfanumerické znaky a podtržítko [A-Za-z0-9_]
|
[:blank:] |
|
mezera atabelátor [ \t]
|
[:space:]
|
neviditelné znaky [ \t\r\n\v\f]
|
|
[:punct:]
|
interpunkční znaménka [-!"#$%&'()*+,./:;<=>?@[\\\]^_`{|}~]
|
|
[:xdigit:]
|
hexadecimální číslice [A-Fa-f0-9]
|
Metaznaky ?, *, +, { } patří mezi tzv. kvantifikátory. Udávají počet výskytů předchozího uvedeného regulárního výrazu.
kvantifikátor | význam | |
---|---|---|
? | výraz se nevyskytuje nebo maximálně jednou
|
|
* | výraz se nevyskytuje nebo vícekrát
|
|
+ | výraz se vyskytuje minimálně jednou
|
|
{n} | výraz se vyskytuje přesně n-krát
|
|
{n,} | výraz se vyskytuje minimálně n-krát
|
|
{,m} | výraz se vyskytuje maximálně m-krát
|
|
{n,m} | výraz se vyskytuje minimálně n-krát a maximálně m-krát
|
Metaznak | slouží pro alternaci více definovaných regulárních výrazů.
Metaznaky ( ) slouží pro definici skupin regulárních výrazů. Na jednotlivé skupiny se lze v rámci zadaného výrazu odkazovat pomocí tzv. zpětných referencí (back references), které jsou indexovány od čísla jedna v pořadí, jak jsou definovány jednotlivé skupiny regulárních výrazů. Indexu zpětné reference vždy předchází únikový metaznak (zpětné lomítko).
Metaznak \ je tzv. únikový metaznak. Slouží pro potlačení či vyvolání obvyklé funkce různých metaznaků (viz rozdíl mezi BRE a ERE v úvodu této kapitoly). Příkladem použití jsou výše uvedené ukázky s příkazy grep a egrep.