Python-Metakarakter

esra : istinye 05331233445 esma : levent 05322134344 sevgi : dudullu
05354445434 kemal : sanayi 05425455555 osman : tahtakale 02124334444
metin : taksim 02124344332 kezban : caddebostan 02163222122

Yukarıdaki metni dosya.txt adlı bir dosyaya koydum.Daha sonra burdaki isim ve numaraları düzgün bir şekilde metakarakterler ile çekmeye çalıştım.Fakat bir satırdaki tüm numara ve isimleri almıyor.Yazdığım kodlar şu şekilde;

import re
dosya = open("dosya.txt")
for i in dosya.readlines():
    nesne = re.search("(\w+)\s+:\s(\w+)\s+(\d+)",i)
    if nesne:
        print("{} > {}".format(nesne.group(1), nesne.group(3)))

Şöyle çıktı veriyor
esra > 05331233445
kemal > 05425455555
metin > 02124344332

Şöyle deneyin:

import re

dosya = open("a.txt")
for i in dosya.readlines():
    nesne = re.findall("(\w+)\s+:\s(\w+)\s+(\d+)", i)
    if nesne:
        for i in nesne:
            print(i)

Çok güzel fakat sevgi nin numarasını alamadık.

Veriyi readlines() metodu ile alıyorsunuz.

İlk satırda şöyle bir veri var:

esra : istinye 05331233445 esma : levent 05322134344 sevgi : dudullu

sevgi : dudullu ifadesi sizin düzenli ifadenize uymuyor. Bir sonraki satır da şu:

05354445434 kemal : sanayi 05425455555 osman : tahtakale 02124334444

Bu satırın başındaki numara da düzenli ifadeye uymuyor ve yok sayılıyor.

Tamamdır teşekkürler