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