Найти - Пользователи
Полная версия: Регулярные выражения
Начало » Python для экспертов » Регулярные выражения
1
kvazar
Здравствуйте, меня довольно давно мучает такая дилема, которая периодически возникает при работе с регулярными выражениями.
Вот допустим есть такой текст

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, кто-нибудь знает, как это решить с помощью регулярных выражений?
Naota
а чем s.split('ddd') не устраивает?
kvazar
split устраивает, но мне просто интересно реально ли это сделать с помощью регулярных выражений?
Naota
реально, в регулярках то же есть split, и записывается так же
slivlen
kvazar
split устраивает, но мне просто интересно реально ли это сделать с помощью регулярных выражений?
Реально. Что-то типа такого должно сработать:
patt = re.compile('ddd(.+?)(?=ddd)', re.M|re.S)
dd_content_list = patt.findall(s)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB