11 Eylül 2012 Salı

Düzenli İfadeler-3

+(Artı)

Bu karakterimiz * karakteriyle benzerdir.Fakat * karakteriyle kendisinden önceki 0 veya daha fazla
sayıda tekrar eden karakterleri buluyor.+ işareti ise kendisinden önce 1 veya daha fazla olan
karakterleri bulamamızı sağlıyor.

Örnek:

>>> liste=["batman", "catwoman", "zorman", "man"]

>>> for i in liste:
if re.match(".+man",i):
print i

batman
catwoman
zorman

Görüğümüz gibi burada "man" kelimesinin çıktısını vermedi.Bunun neden ".+man" yazmış olmamızdır.
Ama * karakteriyle kullanılan sonuçta ise;

>>> for i in liste:
if re.match(".*man",i):
print i


batman
catwoman
zorman
man

"man" kelimesini ekrana verdi.


Şimdi bu +(Artı) karakterimizle ilgili biraz örnekler verelim:


*(Yıldız) Karakteriyle
>>> liste=["dv","dev","deev","deeeev","deveeeee"]
>>> for i in liste:
if re.match("de*v",i):
print i


dv
dev
deev
deeeev
deveeeee


+(Artı) Karakteriyle
>>> for i in liste:
if re.match("de+v",i):
print i


dev
deev
deeeev
deveeeee


?(Soru İşareti) 

Bu karakterimiz *(Yıldız) ve +(Artı) işaretinin birleşimi şeklinde belirtebiliriz.
Hemen örnekleyelim:

*(Yıldız) Karakteriyle
>>> liste=["dv","dev","deev","deeeev","deveeeee"]
>>> for i in liste:
if re.match("de*v",i):
print i


dv
dev
deev
deeeev
deveeeee


+(Artı) Karakteriyle
>>> for i in liste:
if re.match("de+v",i):
print i


dev
deev
deeeev
deveeeee

?(Soru İşareti) Karakteriyle
>>> for i in liste:
if re.match("de?v",i):
print i


dv
dev
deveeeee

Gördüğümüz gibi ?(Soru İşareti) Karakteri d ile v arasındaki e karakterinden hiç geçmeyen kelimeleri ve 1 defa geçen kelimeleri buldu.

Pythonla IP adresimizi öğrenelim

# -*- coding: utf-8 -*-
import urllib2
import socket

url="http://droidpark.com/whatismyip/"

hostname=socket.gethostname()

lanip=socket.gethostbyname(socket.gethostname())

try:
adresiAl=urllib2.urlopen(url)
wanip=adresiAl.read()
adresiAl.close()
except IOError:
print "Şuanda ip adresiniz alamıyoruz";
wanip="Error!";

print "*"*10;
print "Makine adi : %s" % hostname
print "WAN IP Adresi : %s" % wanip
print "LAN IP Adresi : %s" % lanip
print "*"*10


Kaynak