Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 1, 2010 16:22:40

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Парсинг

по правильному там не должно быть столько переводов строк, поэтому так:

# coding: utf8

import re
text = '''--SBD.Boundary.605592468
Content-Type: application/x-zip-compressed; name="SBMmessage.sbd"
Content-Disposition: attachment; filename="300224010715200_001453.sbd"
Content-Transfer-Encoding: base64

MjAwOS0xIC0xNCAyIDo1OAlMRU5HCS0zLjIgIAk5OSAgCTk0Ny40ICAJOTQ3LjYgIAk5ODMuMCAg
CTEuNCAgICAJMyAgICAgCTkuNCAgIAkxNDEgIAkxMy41NTIJDQoNCg==
--SBD.Boundary.605592468--'''

g = re.match('.*?\n\n(.*)--SBD', text, re.DOTALL)
if g:
print g.groups(0)[0].decode('base64')

Офлайн

#2 Апрель 1, 2010 17:52:01

XdenisX
От:
Зарегистрирован: 2009-10-31
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг

o7412369815963
по правильному там не должно быть столько переводов строк, поэтому так:
# coding: utf8

import re
text = '''--SBD.Boundary.605592468
Content-Type: application/x-zip-compressed; name="SBMmessage.sbd"
Content-Disposition: attachment; filename="300224010715200_001453.sbd"
Content-Transfer-Encoding: base64

MjAwOS0xIC0xNCAyIDo1OAlMRU5HCS0zLjIgIAk5OSAgCTk0Ny40ICAJOTQ3LjYgIAk5ODMuMCAg
CTEuNCAgICAJMyAgICAgCTkuNCAgIAkxNDEgIAkxMy41NTIJDQoNCg==
--SBD.Boundary.605592468--'''

g = re.match('.*?\n\n(.*)--SBD', text, re.DOTALL)
if g:
print g.groups(0)[0].decode('base64')
Спасибо, то что нужно!



Офлайн

#3 Май 12, 2010 17:19:15

XdenisX
От:
Зарегистрирован: 2009-10-31
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг

o7412369815963
А как найти допустим второе вхождение этого текста?
Допустим, он выглядит так:

SBM Message
--SBD.Boundary.605592468
Content-Type: text/plain;charset=US-ASCII
Content-Disposition: inline; Content-Transfer-Encoding: 7bit

MOMSN: 1453
MTMSN: 0
Time of Session (UTC): Wed Jan 14 06:07:02 2009
Session Status: 00 - Transfer OK
Message Size (bytes): 97

Unit Location: Lat = -69.540903 Long = 159.359961
CEPradius = 8

--SBD.Boundary.605592468
Content-Type: application/x-zip-compressed; name="SBMmessage.sbd"
Content-Disposition: attachment; filename="300224010715200_001453.sbd"
Content-Transfer-Encoding: base64

MjAwOS0xIC0xNCAyIDo1OAlMRU5HCS0zLjIgIAk5OSAgCTk0Ny40ICAJOTQ3LjYgIAk5ODMuMCAg
CTEuNCAgICAJMyAgICAgCTkuNCAgIAkxNDEgIAkxMy41NTIJDQoNCg==
--SBD.Boundary.605592468--



Отредактировано (Май 12, 2010 17:23:03)

Офлайн

#4 Май 12, 2010 22:59:49

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Парсинг

регепс поправить…, или сделать text.split('\n\n').
какой именно кусок текста нужен? про написание регепса можешь глянуть тут

Офлайн

#5 Май 13, 2010 01:46:26

XdenisX
От:
Зарегистрирован: 2009-10-31
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг

o7412369815963
регепс поправить…, или сделать text.split('\n\n').
какой именно кусок текста нужен? про написание регепса можешь глянуть тут
Спасибо.
нужен вот этот кусок:

MjAwOS0xIC0xNCAyIDo1OAlMRU5HCS0zLjIgIAk5OSAgCTk0Ny40ICAJOTQ3LjYgIAk5ODMuMCAg
CTEuNCAgICAJMyAgICAgCTkuNCAgIAkxNDEgIAkxMy41NTIJDQoNCg==



Офлайн

#6 Май 13, 2010 01:59:56

XdenisX
От:
Зарегистрирован: 2009-10-31
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг

Наверное вот так:

g = re.match('.*?base64\n\n(.*)--SBD', text, re.DOTALL)



Офлайн

#7 Май 13, 2010 08:22:50

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Парсинг

XdenisX
Наверное вот так:

g = re.match('.*?base64\n\n(.*)--SBD', text, re.DOTALL)
наверно

Офлайн

#8 Май 13, 2010 10:13:44

XdenisX
От:
Зарегистрирован: 2009-10-31
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг

o7412369815963
XdenisX
Наверное вот так:

g = re.match('.*?base64\n\n(.*)--SBD', text, re.DOTALL)
наверно
Да, все отрабатывает как надо. Спасибо большое за статью, сразу пришло понимание написанного :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version