pythontr.com
Programlama ile uğraşıyor iseniz yaptığınız arge lerde mutlaka regex diye ifade ettiğimiz düzenli ifadeler ile karşılaşmışsınızdır. Bu yazımda da düzenli ifade desenleri ile kelime öbeklerininin ileri ve geri kısımlarını belirlemeyi göstermeye çalışacağım ve basit bir şekilde ele almaya çalışacağım.
#!/usr/bin/env python # -*- coding: utf-8 -*- import re metin_dizisi = ['uygulayacağım', 'uyguluyorum', 'uyguladım', 'yasayacağım'] rgx = re.compile('(?<!uygul)ayacağım') #ayacağım metnin basinda uygul olmayan stringleri bulur. for mtn in metin_dizisi: print "Aranan dizi: %s" %(mtn) cevap = rgx.findall(mtn) print "Bulunan: %s" %(cevap) Aranan dizi: uygulayacağım Bulunan: [] Aranan dizi: uyguluyorum Bulunan: [] Aranan dizi: uyguladım Bulunan: [] Aranan dizi: yasayacağım Bulunan: ['ayaca\xc4\x9f\xc4\xb1m']
#!/usr/bin/env python # -*- coding: utf-8 -*- import re metin_dizisi = ['uygulayacağım', 'uyguluyorum', 'uyguladım', 'yasayacağım'] rgx = re.compile('(?<=uygul)ayacağım') #ayacağım metnin basinda uygul olan stringleri bulur. for mtn in metin_dizisi: print "Aranan dizi: %s" %(mtn) cevap = rgx.findall(mtn) print "Bulunan: %s" %(cevap) Aranan dizi: uygulayacağım Bulunan: ['ayaca\xc4\x9f\xc4\xb1m'] Aranan dizi: uyguluyorum Bulunan: [] Aranan dizi: uyguladım Bulunan: [] Aranan dizi: yasayacağım Bulunan: []
#!/usr/bin/env python # -*- coding: utf-8 -*- import re metin_dizisi = ['uygulayacağım', 'uyguluyorum', 'uyguladım', 'yasayacağım'] rgx = re.compile('uygul(?=ayacağım)') #uygul metnin sonunda ayacağım olan stringleri bulur. for mtn in metin_dizisi: print "Aranan dizi: %s" %(mtn) cevap = rgx.findall(mtn) print "Bulunan: %s" %(cevap) Aranan dizi: uygulayacağım Bulunan: ['uygul'] Aranan dizi: uyguluyorum Bulunan: [] Aranan dizi: uyguladım Bulunan: [] Aranan dizi: yasayacağım Bulunan: []
#!/usr/bin/env python # -*- coding: utf-8 -*- import re metin_dizisi = ['uygulayacağım', 'uyguluyorum', 'uyguladım', 'yasayacağım'] rgx = re.compile('uygul(?!ayacağım)') #uygul metnin sonunda ayacağım olmayan stringleri bulur. for mtn in metin_dizisi: print "Aranan dizi: %s" %(mtn) cevap = rgx.findall(mtn) print "Bulunan: %s" %(cevap) Aranan dizi: uygulayacağım Bulunan: [] Aranan dizi: uyguluyorum Bulunan: ['uygul'] Aranan dizi: uyguladım Bulunan: ['uygul'] Aranan dizi: yasayacağım Bulunan: []
Biraz karışık gibi duruyor ama biraz çalışarak mantığını kavrayabilirsiniz.
Yorumlar