oreol
Окт. 31, 2016 16:57:00
Суть задачи: Вводится строка разной длины и нужно в промежутке между двумя маркерами вытащить значения.
К примеру:
s1 = 'fklfkljfklsdlfIDsdjklfj24l&jksdfhsdf'
s2 = 'fnjksdfkljlIDfklsdfklsdf8t4jdkl&klsdjfklkfl'
s3 = 'mjsdklfksdlfksdlIDkjgkhdfgjkhdf2893rjkfnjfnjksefhis&fisdfklsdnfjkfy'
Собственно выделенное нужно вытащить. Маркер начала ID, маркер конца нужных нам данных &
Vigi
Окт. 31, 2016 17:13:19
тупо в лоб для этих примеров:
print(s1[s1.find('D')+1:s1.find('&')])
oreol
Окт. 31, 2016 17:20:33
ayb
>>> import re
>>> s = “mjsdklfksdlfksdlIDkjgkhdfgjkhdf2893rjkfnjfnjksefhis&fisdfklsdnfjkfy”
>>> re.findall(r“ID(.*)\&”, s)
спасибо. А что делать если у меня в строке встречается более одного &, но самый ближайший к ID является концом нужных данных?
К примеру:
s = 'sdpokfliodufiosdf
IDiosiofus34ioufsoisd&ioufiodsufo
&oiuiodsjfklnsdf
>t