Nßsledujφcφ kompletnφ popis regulßrnφch v²raz∙ je p°evzat z dokumentace knihovny
REGEXP, v²bornΘ prßce Henryho Spencera.
SYNTAXE REGUL┴RN═CH V▌RAZ┘
Regulßrnφ v²raz se sklßdß z v∞tvφ regulßrnφho v²razu (dßle jen RV) odd∞len²ch
'|' (spojka "nebo"), poΦet v∞tvφ RV je v∞tÜφ nebo roven nule. Regulßrnφ v²raz
je srovnateln² s ka₧d²m textem, kter² je srovnateln² s n∞kterou z obsa₧en²ch
v∞tvφ RV.
V∞tev RV se sklßdß z Φßstφ RV, kterΘ na sebe navazujφ a jejich poΦet je v∞tÜφ
nebo roven nule. V∞tev RV je srovnatelnß s textem, jeho₧ prvnφ Φßst je
srovnatelnß s prvnφ Φßstφ RV, druhß Φßst je srovnatelnß s druhou Φßstφ RV a tak
dßle.
╚ßst RV je atom RV p°φpadn∞ nßsledovan² '*', '+' nebo '?'. Atom RV nßsledovan²
'*' je srovnateln² s textem vznikl²m 0 nebo vφce opakovßnφmi textu srovnatelnΘho
s atomem RV. Atom RV nßsledovan² '+' je srovnateln² s textem vznikl²m 1 nebo
vφce opakovßnφmi textu srovnatelnΘho s atomem RV. Atom RV nßsledovan² '?' je
srovnateln² s prßzdn²m textem nebo textem srovnateln²m s atomem RV.
Atom RV je regulßrnφ v²raz v kulat²ch zßvorkßch (tento atom RV je srovnateln² s
textem, kter² je srovnateln² s regulßrnφm v²razem v zßvorkßch), mno₧ina RV (viz
dßle), '.' (tento atom RV je srovnateln² s jednφm libovoln²m znakem), '^'
(tento atom RV je srovnateln² s prßzdn²m textem na zaΦßtku °ßdky), '$' (tento
atom RV je srovnateln² s prßzdn²m textem na konci °ßdku), '\' nßsledovan²
libovoln²m znakem (tento atom RV je srovnateln² se znakem, kter² nßsleduje
'\') nebo libovoln² znak, kter² nemß p°i°azen specißlnφ v²znam (tento atom
RV je srovnateln² s tφmto znakem).
Mno₧ina RV je mno₧ina znak∙ uzav°en²ch do hranat²ch zßvorek. Mno₧ina RV je
normßln∞ srovnatelnß s ka₧d²m obsa₧en²m znakem. Pokud ovÜem mno₧ina v '[]'
zaΦφnß '^', je vzniklß mno₧ina RV srovnatelnß naopak s ka₧d²m neobsa₧en²m
znakem. Pokud jsou dva znaky v mno₧in∞ odd∞leny '-', jde o zkrßcen² zßpis
intervalu ASCII znak∙ (nap°. '[0-9]' je tedy srovnateln² se ka₧dou dekadickou
Φφslicφ). Pokud chcete do mno₧iny dostat znak ']', dejte ho na prvnφ pozici
za '[' (tedy nap°. '[]]'), p°φpadn∞ jeÜt∞ za '^' (tedy nap°. '[^]]'). Pokud
chcete do mno₧iny dostat znak '-', dejte ho na poslednφ pozici.
MNOHOZNA╚NOST
Pokud je regulßrnφ v²raz srovnateln² se dv∞ma r∙zn²mi Φßstmi textu, srovnß se
s tφm, kter² zaΦφnß d°φve. V p°φpad∞, ₧e oba zaΦφnajφ na stejnΘ pozici, ale
majφ r∙znou dΘlku nebo majφ stejnou dΘlku, ale byli srovnßny r∙zn²m zp∙sobem,
vÜe se komplikuje, viz nßsledujφcφ.
Obecn∞ jsou varianty v seznamu v∞tvφ RV probφrßny v po°adφ zleva doprava,
varianty pro '*', '+' a '?' jsou probφrßny od nejdelÜφch k nejkratÜφm, vno°enΘ
konstrukce jsou probφrßny od vn∞jÜφch k vnit°nφm a navazujφcφ konstrukce jsou
probφrßny zleva doprava. Text je srovnßn podle prvnφ vyhovujφcφ varianty.
Nap°φklad '(ab|a)b*c' je srovnateln² s 'abc' dv∞ma zp∙soby. Na zaΦßtku je mo₧nΘ
zvolit mezi 'ab' a 'a'. Bude pou₧ito 'ab', proto₧e je prvnφ a vede k ·sp∞ÜnΘmu
konci. Zb²vajφcφ 'c' je srovnßno takto: 'b*' je srovnßno s prßzdn²m textem a
'c' je srovnßno s 'c'.
Ve specißlnφm p°φpad∞, kdy nebude v regulßrnφm v²razu pou₧ito '|' a bude zde
prßv∞ jeden znak '*', '+' nebo '?', dojde k srovnßnφ nejdelÜφho srovnatelnΘho
textu. Tak₧e 'ab*' v 'xabbbby' bude srovnßno s 'abbbb'. VÜimn∞te si ale, ₧e
'ab*' v 'xabyabbbz' bude srovnßno s 'ab', kterΘ zaΦφnß d°φve ne₧ 'abbb' (po°adφ
rozhoduje na prvnφm mφst∞).
%p - cesta s dlouh²mi nßzvy (nap°. '\Program Files\Microsoft Internet\')
%h - cesta se zkrßcen²mi nßzvy (nap°. '\PROGRA~1\MICROS~1\')
%f - dlouh² nßzev souboru (nap°. 'read this file.txt')
%s - zkrßcen² nßzev souboru (nap°. 'READTH~1.TXT')
%% - znak '%' (pokud pot°ebujete pou₧φt znak '%' v p°φkazu)
SpouÜt∞cφ vlastnosti slou₧φ k rozhodnutφ, jak dan² p°φkaz provΘst. Existujφ tyto
mo₧nosti - p°φmΘ spuÜt∞nφ a spuÜt∞nφ p°es MS-DOS prompt (s nebo bez zav°enφ
okna MS-DOS promptu po ukonΦenφ p°φkazu). P°φmΘ spouÜt∞nφ je dobrΘ pro aplikace
pro Windows. SpouÜt∞nφ p°es MS-DOS prompt se pou₧φvß pro konzolovΘ aplikace
se zajφmav²m v²stupem nebo pro spouÜt∞nφ kolon (p°esm∞rovan² vstup nebo v²stup,
roury atd.).
U₧ivatelskou nabφdku vytvo°φte na strßnce U₧ivatelskß nabφdka v dialogu Mo₧nosti.
Tato strßnka je trochu slo₧it∞jÜφ. Jsou zde tlaΦφtka pro p°idßnφ, zm∞nu a
odstran∞nφ polo₧ek u₧ivatelskΘ nabφdky. Vybranß polo₧ka je rozd∞lena do nßzvu,
p°φkazu a spouÜt∞cφch vlastnostφ. Po zm∞n∞ t∞chto rozd∞len²ch dat je nutnΘ
pou₧φt tlaΦφtko Zm∞nit, aby doÜlo ke zm∞n∞ polo₧ky u₧ivatelskΘ nabφdky. Po°adφ
polo₧ek zm∞nφte klßvesami Ctrl+Üipka nahoru a Ctrl+Üipka dol∙ na posouvanΘ
polo₧ce u₧ivatelskΘ nabφdky.
Klßvesou F9 v panelech a dialogu Hledat soubory otev°ete dialog U₧ivatelskß
nabφdka, ve kterΘm je zobrazen seznam polo₧ek u₧ivatelskΘ nabφdky.