Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 21, 2014 20:31:37

Dobrodel
Зарегистрирован: 2014-09-24
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Выделение по шаблону

Привет всем
Помогите советом, как выделить данные из строки:

data =«'date': '22 Oct 2013', 'begin': '14:00', 'id': 10127, 'sr': '1:0:19:42D0:11:', box': 'Premium

Необходимо собрать всё значения после названия переменной, чтобы в результате получить список вида:
['22 Oct 2013', '14:00', 10127', '1:0:19:42D0:11:', 'Premium]

Замечу, что переменная id есть целое число и соответственно без кавычек.
Можно ли решить проблему? И если да, то как? Подскажите пожалуйста.

Офлайн

#2 Окт. 21, 2014 21:27:43

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Выделение по шаблону

map(''.join, re.findall(r": \'([\w: ]+)\'| ([\w: ]+)", s))



Отредактировано Budulianin (Окт. 21, 2014 21:28:13)

Офлайн

#3 Окт. 22, 2014 05:07:05

Dobrodel
Зарегистрирован: 2014-09-24
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Выделение по шаблону

Благодарю, то что надо))
Волшебство прямо)))

Офлайн

#4 Окт. 22, 2014 05:25:04

Dobrodel
Зарегистрирован: 2014-09-24
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Выделение по шаблону

Возможно будет у Вас оказия подсказать мне, ещё и в этом вопросе)):
Есть строка

data=‘отличная мелодрама’
Необходимо составить регулярное выражение, которое бы возвращало результат (строку «драма» ) в случае если сочетание букв ’драма’ встречалась бы, как отдельное слово. Т.е. в случае
data=‘отличная мелодрама’
возвращается пустота, а в случае
data=‘и в тоже время драма интереснее’
возвращается «драма».
Или это возможно решить без регулярных выражений?

Офлайн

#5 Окт. 22, 2014 10:23:23

vrabey
От: Киев
Зарегистрирован: 2013-04-17
Сообщения: 209
Репутация: +  23  -
Профиль   Отправить e-mail  

Выделение по шаблону

data = u'и в тоже время драма интереснее'
word = u" драма "
# номер первого вхожения если есть или -1
print data.find(word)
# True or False
print word in data
#--------------------------------------------
# v2
word2 = u"драма"
# True or False
print word2 in data.split(" ")

Офлайн

#6 Окт. 22, 2014 11:21:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Выделение по шаблону

>>> import re
>>> 
>>> data = 'и в тоже время драма интереснее'
>>> 
>>> match = re.search(r'\bдрама\b', data)
>>> out = (match and match.group()) or ''
>>> out
'драма'
>>> 
>>> data = 'и в тоже время мелодрама интереснее'
>>> 
>>> match = re.search(r'\bдрама\b', data)
>>> out = (match and match.group()) or ''
>>> out
''
>>>



Офлайн

#7 Окт. 23, 2014 19:41:56

Dobrodel
Зарегистрирован: 2014-09-24
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Выделение по шаблону

Супер, благодарю

Офлайн

#8 Окт. 25, 2014 18:11:06

Dobrodel
Зарегистрирован: 2014-09-24
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Выделение по шаблону

В продолжении темы))
Задача усложнилась (для меня, так точно)
Есть строка

data =«date=22 Oct 2013 14:00, begin=14:00, id=10127, sr=1:0:19:42D0:11:, box=Премиум»
Нужно получить на русском
['22 Oct 2013 14:00', '14:00', 10127', '1:0:19:42D0:11:', 'Премиум’]

Подскажите пожалуйста, как сделать?

Отредактировано Dobrodel (Окт. 25, 2014 18:12:07)

Офлайн

#9 Окт. 25, 2014 20:02:47

Dobrodel
Зарегистрирован: 2014-09-24
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Выделение по шаблону

Вроде получилось всё))

data ="date=22 Oct 2013 14:00, begin=14:00, id=10127, sr=1:0:19:42D0:11:, box=Премиум"
print re.sub( r"(\S+)=","",data)
Результат:
22 Oct 2013 14:00, 14:00, 10127, 1:0:19:42D0:11:, Премиум
Простите за беспокойство))

Отредактировано Dobrodel (Окт. 25, 2014 20:03:05)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version