Kvantifikatory v RE
Pavel Nejedly
bim na atrey.karlin.mff.cuni.cz
Čtvrtek Duben 19 10:09:33 MEST 2001
Pokud se podivate do promenne $3, tak tam opravdu najdete jen
ty ctyri cislice; problem je totiz v tom, ze ten match se chape
jako ze retezec obsahuje podretezec, ktery vypada tak jak jste
popsal. To, co potrebujete, je zajistit, aby to, co se zmatchuje
byl cely ten retezec. K tomu se pouzivaji spec. symboly ^ (zacatek)
a $ (konec). tj. zmente RE na /^(\d{1,2})\.(\d{1,2})\.(\d{4})$/
Pavel
On Thu, Apr 19, 2001 at 10:03:08AM +0200, Hrabcak Rado wrote:
# Zdravim Vas,
#
# Mam takyto problem,
#
#
# robim funkciu na kontrolu spravnosti zadanioa datumu pre jedno cgi.
#
# Datum by mal byt vo formate:
#
# dd.mm.yyyy
#
#
# a snazim sa to kontrolovat takto:
#
# if ($date =~ /(\d{1,2})\.(\d{1,2})\.(\d{4})/) {
#
# OK
#
# }
#
# else {
#
# ERROR
#
# }
#
#
# vsetko funguje pekne ale ked dam napr. rok viac ako 4 miestne cislo oreze
# vsetko za 4 cislicou a tvari sa ze ok.
#
# Ked som cital man perlre je napisane ze {n} - match exactly 'n' times.
# Exactly chapem ako 'prave'. Asi som nieco pochopil zle.
#
# Potom som to sice obysiel tak ze som zmenil kvantifikatory na {1,} a {4,}
# a kontroloujem dalsou funkciou dlzku retazca, ale pripada mi to
# neelegantne.
# Je to mozne urobit jednym RE? Alebo to musim robit tak ako som to urobil?
# Dik
#
# --
# rado (duffy) hrabcak
# .
# .t-e-l. + 421 905 669 362 .m-a-i-l. duffy na duffy.sk
# .i-c-q. 25915231 .w-e-b. www.duffy.sk
#
#
Další informace o konferenci Perl