From: Bora Şahin (borasah@netone.com.tr)
Date: Sat 27 Jul 2002 - 16:56:32 EEST
SLmLar
> regexp kullanrarak gun/ay/yıl şeklinde girilen bir tarihin
> ab/cd/ef veya ab/cd/efgh formatında yazılıp yazılmadıgının kontrolunu
> ve buradan "cd" yani ay kısmını bir variable şeklinde nasıl alabilirim?
>
> tesekkurler
> funky
> GsuLinuX
Yıl kısmında 4 tane rakam olduğunu farz ediyorum. Yani, 1000' den sonraki
yıllar bulunur.(Biraz daha ayrıntılı ifade edebilseydiniz daha iyi olurdu)
Bu durumda regexp şu şekilde yazılabilir:
0?[1-9]|[12][0-9]|3[01]\/([2-9]|1[0-2]?)\/[0-9]{2}|[12][0-9]{3}
Tam hatırlayamıyorum ama 3. bölümdeki küme parantezlerinin escape edilmesi
gerekiyor olabilir. egrep' de edilmeli ama Perl' de edilmesi gerekiyor mu
tam hatırlayamıyorum. Eğer ediliyorsa, bu durumda 3. bölüm şu şekilde olur:
....[0-9]\{2\}|[12][0-9]\{3\}
Hangi programda yapacağınızı söylemediğiniz için değişkene aktarma olayı
hakkında kesin bir şey söylemek zor. Pek Perl bilmiyorum ama sanırım
aşağıdaki gibi yapabilirsiniz:
...
if ($satır =~ m/regexp/) {
$var = $1;
}
...
Tabii bunu yapmanın çok daha değişik yolları olabilir.
egrep' de ise "ay" kısmı \1 ile alınabilir.
Bora Şahin
Saygılar
-----------------------------------------------------------------------
Liste üyeliğiniz ile ilgili her türlü işlem için
http://liste.linux.org.tr adresindeki web arayüzünü kullanabilirsiniz.
Listeden çıkmak için: 'linux-request@linux.org.tr' adresine,
"Konu" kısmında "unsubscribe" yazan bir e-posta gönderiniz.
-----------------------------------------------------------------------