Уведомления

Группа в Telegram: @pythonsu

#1 Май 16, 2009 02:09:14

kvazar
От:
Зарегистрирован: 2009-01-05
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

Здравствуйте, меня довольно давно мучает такая дилема, которая периодически возникает при работе с регулярными выражениями.
Вот допустим есть такой текст

ddd
sjhdjksjs
3343;:№(*!**№:?№
dhjsdsdsds
ddd
shdkhsdlkshdls
dkshdshd
3343;:№(*!**№:?№
dshdjsds
dshjds
ddd
ddd
sjhdjksjs
3343;:№(*!**№:?№
dhjsdsdsds
ddd
shdkhsdlkshdls
dkshdshd
3343;:№(*!**№:?№
dshdjsds
dshjds
ddd

из этого мне нужно вынуть все символы между первыми ddd,
то есть
“sjhdjksjs
3343;:№(*!**№:?№
dhjsdsdsds”
важно, что символы между ddd могут быть аболютно любыми.
То есть логика такая, находим первые ddd и выдергиваем абсолютно все символы до первых попавшихся ddd, кто-нибудь знает, как это решить с помощью регулярных выражений?



Офлайн

#2 Май 16, 2009 06:58:14

Naota
От:
Зарегистрирован: 2007-06-04
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

а чем s.split('ddd') не устраивает?



Офлайн

#3 Май 16, 2009 15:46:19

kvazar
От:
Зарегистрирован: 2009-01-05
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

split устраивает, но мне просто интересно реально ли это сделать с помощью регулярных выражений?



Офлайн

#4 Май 17, 2009 08:19:06

Naota
От:
Зарегистрирован: 2007-06-04
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

реально, в регулярках то же есть split, и записывается так же



Офлайн

#5 Май 18, 2009 10:09:06

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярные выражения

kvazar
split устраивает, но мне просто интересно реально ли это сделать с помощью регулярных выражений?
Реально. Что-то типа такого должно сработать:
patt = re.compile('ddd(.+?)(?=ddd)', re.M|re.S)
dd_content_list = patt.findall(s)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version