Найти - Пользователи
Полная версия: помогите составить Регулярку
Начало » Центр помощи » помогите составить Регулярку
1
Megido
я вобщем не особо шарю питоньи регулярки
вотя начал:
>>> r=re.compile(r'^<operator id=“(\d+)” name=“(\w+)” label=“(\w+)” tld=“(\w+)” country=“(\w+)” publish=“(\d+)”</operator>$', re.IGNORECASE)
>>> s=urllib2.urlopen('http://www.logofon.ru/xml/ips.xml').read()
>>> re.findall(r,s)

и пусто

хз может чего не так сделал,

кстати там еще ипы нужно забрать их я вобще хз как
Megido
сделал вот так так интерпритатор завис нафиг :/

>>> r=re.compile(r'<operator id=“(\d+)” name=“(.*?)” label=“(.*?)” tld=“(.*?)” country=“(.*?)” publish=“(\d+)”</operator>', re.IGNORECASE | re.DOTALL)
>>> re.findall(r,s)
Megido
а все , отбой я раздуплился. оно висело бо я забыл че там еще куча ипов
в общем вот так работает
r=re.compile(r'<operator id=“(\d+)” name=“(.+?)” label=“(.+?)” tld=“(.+?)” country=“(.+?)” publish=“(\d+)”.*?</operator>', re.IGNORECASE | re.DOTALL)

осталось ипы забрать
Megido
забрал
вот вобщем если надо кому, гугл смотри сюда “ip база логофона python”

import urllib2,re

def cp1251(x):
return x.decode('cp1251')
re_ip=re.compile(r'<operator id=“(\d+)” name=“(.*?)” label=“(.*?)” tld=“(.*?)” country=“(.*?)” publish=“(\d+)”.+?<range (.*?)</operator>', re.IGNORECASE | re.DOTALL)
data=urllib2.urlopen('http://www.logofon.ru/xml/ips.xml').read()
x = re.findall(re_ip,data)


ip=x // это массив с ипами обращатся так: x

operator_id=int(x)
name=cp1251(x)
label=x
tld=x
country=cp1251(x)
publish=x
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB