Я думаю, вы пропустили точку findall
. Он возвращает одно значение для каждого совпадения всего шаблона. Если вам нужно несколько групп в одном шаблоне, это нормально, но для этого вам не нужно findall
.
Фактически, вам это действительно не нужно. Вы можете просто заменить всю середину своего шаблона (.*?)
, чтобы тривиально захватить все, что находится между второй открытой фигурной скобкой и первой скобой.
Обратите внимание на нежелательное соответствие; в противном случае он всасывал бы все до последние замыкает скобку, а не до сначала. (. Вы можете использовать опережение утверждения для этого, но не жадные матчей проще)
>>> re.findall('.*{.*{(.*?)}', d, re.S)
['\n none\n slow\n 800\n 1200\n ']
Хотя конечно findall
еще не делает вам никакой пользы:
>>> re.search('.*{.*{(.*?)}', d, re.S).group(1)
'\n none\n slow\n 800\n 1200\n '
Во всяком случае, как только вы есть, что вы можете просто split
это:
>>> re.search('.*{.*{(.*?)}', d, re.S).group(1).split()
['none', 'slow', '800', '1200']
Каковы ваши ожидаемые результаты? – hwnd
Что вы ищете? – Arovit
Я хочу это из строки: ['none', 'slow', '800', '1200'] –