Вы не предоставили достаточно информации, чтобы полностью ответить на вопрос.Значение всегда появляется перед клиентом?Всегда ли он появляется после даты и времени?
В любом случае - этот ответ или Ответ Quicksilver должен работать, если значение всегда появляется после даты и времени и перед клиентом,
Однако вы также можете просто искать то, что появляется после value=
и до ,
, и в этом случае это должно работать: https://regex101.com/r/a4d7Bx/1
import re
text = 'isLogIn=true; Max-Age=400; Path=/; Expires=Wed, 25 Sep 2019 17:46:30 GMT, value=qasde% , client=retail'
m = re.search('value=(.+?) ,', text)
if m:
found = m.group(1)
print(found)
Другой способсделайте это, слегка отредактировав код:
text = 'isLogIn=true; Max-Age=400; Path=/; Expires=Wed, 25 Sep 2019 17:46:30 GMT, value=qasde% , client=retail'
text = text.split('value=', 1)[1]
text = text.split(' , client',1)[0]
print(text)
Вы просили более простой способ.Возможно, оба эти метода довольно просты, поэтому я бы выбрал более быстрый (если вы не хотите более общего решения, в этом случае используйте первый вариант).Я рассчитал их, используя следующий код:
import re
import cProfile
text = 'isLogIn=true; Max-Age=400; Path=/; Expires=Wed, 25 Sep 2019 17:46:30 GMT, value=qasde% , client=retail'
def option1(text):
for i in range(10000):
re.search('value=(.+?) ,', text)
def option2(text):
for i in range(10000):
temp = text.split('value=', 1)[1]
temp = temp.split(' , client',1)[0]
cProfile.run("option1(text)")
print("\n\n\n\n\n")
cProfile.run("option2(text)")
И первый вариант занял 0,076 секунды, а второй - 0,027 секунды, поэтому более быстрый вариант использует split
.