Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 2, 2010 23:01:07

Dr.Livsi
От:
Зарегистрирован: 2010-02-15
Сообщения: 192
Репутация: +  3  -
Профиль   Отправить e-mail  

Использование регулярных выражений в Python.

Доброго всем времени суток!
Есть задача: нужно в списке a=, сделать корректировки, так что бы получилось: b=. Насколько я понимаю, здесь надо использовать регулярные выражения. Однако, прочитав главу про регулярные выражения так и не понял, как их использовать. Просветите, пожалуйста!



Офлайн

#2 Апрель 3, 2010 01:09:20

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

Использование регулярных выражений в Python.

а не проще использовать split ?



Офлайн

#3 Апрель 3, 2010 08:06:22

Dr.Livsi
От:
Зарегистрирован: 2010-02-15
Сообщения: 192
Репутация: +  3  -
Профиль   Отправить e-mail  

Использование регулярных выражений в Python.

может и проще, вопрос как?



Офлайн

#4 Апрель 3, 2010 08:30:38

MapaT
От:
Зарегистрирован: 2008-12-07
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование регулярных выражений в Python.

b = ['Азбука_' + s.rsplit('_', 1)[-1] for s in a]



Офлайн

#5 Апрель 3, 2010 12:28:06

Dr.Livsi
От:
Зарегистрирован: 2010-02-15
Сообщения: 192
Репутация: +  3  -
Профиль   Отправить e-mail  

Использование регулярных выражений в Python.

нет, не вариант: ‘_’ может повторятся неоднократно. Т.е. a=



Офлайн

#6 Апрель 3, 2010 12:39:32

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Использование регулярных выражений в Python.

Dr.Livsi
нет, не вариант: ‘_’ может повторятся неоднократно. Т.е. a=
а это уже другая задача,
напиши сначала все возможные варианты, а то после очередного решения ты ещё что-нибудь придумаешь.

ЗЫ: с тек. условием можно использовать split('_',3) вместо rsplit('_', 1)

Офлайн

#7 Апрель 3, 2010 18:51:46

Dr.Livsi
От:
Зарегистрирован: 2010-02-15
Сообщения: 192
Репутация: +  3  -
Профиль   Отправить e-mail  

Использование регулярных выражений в Python.

боюсь, что максимально точно не смогу обозначить задачу - ибо она находится на работе :))) Поэтому вполне может появиться еще какое-нибудь условие. Во всяком случае попробую решить ее с помощью split. И еще, покажите, пожалуйста, как здесь можно использовать регулярные выражения? Меня, собственно, интересует синтаксис.



Офлайн

#8 Апрель 3, 2010 20:53:10

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование регулярных выражений в Python.

for i in a:
b.append(re.sub("Букварь_\d+", "Азбука", i))



Офлайн

#9 Апрель 3, 2010 21:43:58

Dr.Livsi
От:
Зарегистрирован: 2010-02-15
Сообщения: 192
Репутация: +  3  -
Профиль   Отправить e-mail  

Использование регулярных выражений в Python.

pasaranax, отлично! Получилось. Большое всем спасибо!



Офлайн

#10 Апрель 4, 2010 00:39:30

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование регулярных выражений в Python.

А регулярками нагляднее выходит, но вот так должно быть быстрее:

for i in a:
b.append("Азбука_" + "_".join(i.split("_")[2:]))



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version