Форум сайта python.su
32
по правильному там не должно быть столько переводов строк, поэтому так:
# 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')
Офлайн
0
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')
Офлайн
0
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)
Офлайн
32
регепс поправить…, или сделать text.split('\n\n').
какой именно кусок текста нужен? про написание регепса можешь глянуть тут
Офлайн
0
o7412369815963Спасибо.
регепс поправить…, или сделать text.split('\n\n').
какой именно кусок текста нужен? про написание регепса можешь глянуть тут
MjAwOS0xIC0xNCAyIDo1OAlMRU5HCS0zLjIgIAk5OSAgCTk0Ny40ICAJOTQ3LjYgIAk5ODMuMCAg
CTEuNCAgICAJMyAgICAgCTkuNCAgIAkxNDEgIAkxMy41NTIJDQoNCg==
Офлайн
0
Наверное вот так:
g = re.match('.*?base64\n\n(.*)--SBD', text, re.DOTALL)Офлайн
32
XdenisXнаверно
Наверное вот так:g = re.match('.*?base64\n\n(.*)--SBD', text, re.DOTALL)
Офлайн
0
o7412369815963Да, все отрабатывает как надо. Спасибо большое за статью, сразу пришло понимание написанного :)XdenisXнаверно
Наверное вот так:g = re.match('.*?base64\n\n(.*)--SBD', text, re.DOTALL)
Офлайн