Уведомления

Группа в Telegram: @pythonsu

#1 Март 31, 2014 08:02:45

zahar
Зарегистрирован: 2013-07-15
Сообщения: 39
Репутация: +  3  -
Профиль   Отправить e-mail  

И снова re.....

Друзья, прошу помочь. Как сделать и почему не работает вариант ниже

s = "бла бла бла startDate: (2015, 3, 25, 1, 38, 30.0),бла бла бла time: 720L, бла бла бла startDate: (2014, 4, 26, 1, 38, 30.0),бла бла бла time: 500L, бла бла бла"
pattern = re.compile('(startDate: \([\d]+, [\d]+, [\d]+).*(time: [\d]+)')
string = re.findall(pattern, s)

Выдает только
  [('startDate: (2015, 3, 25', 'time: 1720')]   
. Те выдает первый startDate и последний time, а нужно что то вроде:
 [('startDate: (2015, 3, 25', 'time: 720') ('startDate: (2014, 4, 26', 'time: 500')] 

Отредактировано zahar (Март 31, 2014 08:04:26)

Офлайн

#2 Март 31, 2014 08:23:40

zahar
Зарегистрирован: 2013-07-15
Сообщения: 39
Репутация: +  3  -
Профиль   Отправить e-mail  

И снова re.....

Пока сделал так (заменил .* на |) Работает, но не то

s = "бла бла бла startDate: (2015, 3, 25, 1, 38, 30.0),бла бла бла time: 720L, бла бла бла startDate: (2014, 4, 26, 1, 38, 30.0),бла бла бла time: 500L, бла бла бла"
pattern = re.compile('startDate: \([\d]+, [\d]+, [\d]+|time: [\d]+')
string = re.findall(pattern, s)

Выдает:

['startDate: (2015, 3, 25', 'time: 720', 'startDate: (2014, 4, 26', 'time: 1720']

Отредактировано zahar (Март 31, 2014 08:49:56)

Офлайн

#3 Март 31, 2014 16:17:14

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

И снова re.....

pattern = re.compile('(startDate: \(\d+, \d+, \d+).+?(time: \d+)')

Офлайн

#4 Март 31, 2014 17:42:07

zahar
Зарегистрирован: 2013-07-15
Сообщения: 39
Репутация: +  3  -
Профиль   Отправить e-mail  

И снова re.....

Спасибо, то что надо. Думал уже все перебрал, а это упустил

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version