20 Ocak 2013 Pazar
Düzenli İfadeler - 4
{} (küme parantezi)
Bu metakarakter sayesinde, istediğimiz bir karakteri istediğimiz kadar yineletmemizi sağlıyor.
>>>import re
>>> liste=['st','sat','saat,','zaaat',]
>>>for i in liste:
if re.match("sa{2}t",i):
print i
saat
ilk örneğimizde 2 a harfi olan saat kelimesini buldurduk.
>>> for i in liste:
if re.match("za{3}t",i):
print i
zaaat
bu örneğimizdede 3 a harfi olan zaat kelimesini bulduk
Bu metakarakterimizin diğer bir özelliğide {0,2} şeklinde yazarak en az ve en çok ne kadar
tekrar etmesini belirtebiliriz
>>> for i in liste:
if re.match("sa{0,2}t",i):
print i
st
sat
saat
aynı sonucu şu kodlarlada alabiliriz;
>>> for i in liste:
if re.match("sa*t",i):
print i
st
sat
saat
sonuç aynı fakat burada herhangi bir sınır olmadığı için saaaaaat kelimesini listeye eklediğimizde
bu kelimeyide çıktı verecektir.Bir önceki dersten hatırlayalım.
^ (Şapka)
Bu metakarakterimizin 2 özelliği var.Bunlar ilki bir karakter dizisini en başındaki verileri sorgulamak:
>>> x=['VC10DD','FF33GG','WW44EE','QQ11QQ']
>>> for i in x:
ara=re.search("^[A-Z]+[0-9]",i)
if ara:
print ara.group()
VC1
FF3
WW4
QQ1
İkincisi ise " hariç " anlamında kullanımı:
>>>x.appen('4fbPY91')
>>> for i in x:
ara=re.match("[0-9A-Z][^a-z]+",i)
if ara:
print ara.group()
VC10DD
FF33GG
WW44EE
QQ11QQ
gördüğünüz gibi burada sonrada eklediğimiz "4fbPY91" elemanını çıktıda vermedi.Çünkü biz match
metoduyla aranacak kriterleri şöyle belirledik:
[0-9A-Z]=aranacak değerin en başında bir sayı veya büyük harf olmalı şartı
[^a-z]=belirlediğimiz sayı veya büyük har şartından sonra ^(şapka) metakarakterimizin ikinci özelliği
olan haric tutma özelliği ile küçük harf olmaması şartını sağlıyor.
+ =Bu karakterimizde ise yukarıdaki küçük harf olayının tekrar etmesi şartını sağlıyor yani
sayı veya büyük harften sonra ne kadar küçük harf gelirse gelsin yinede bu karakter topluluğunu almayacak.
Bu ^(şapka) metakarakterimizin dahil etmeme özelliğini şöylede kullanabiliriz:
>>> for i in x:
ara=re.search("[0-9A-Z][^a-z]+",i)
if ara:
print ara.group()
VC10DD
FF33GG
WW44EE
QQ11QQ
PY91
Görüldüğü gibi burada "4fbPY91" elemanımızın başında sayı olmasına rağmen sonraki karakterler küçük harf
olduğu için ilk üç karakteri çıkararak sonr 4 karakteri bize verdi
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder