@irtf

Как написать регулярку для работы с многострочным полем?

Здравствуйте.

Имеется вот такой текст:
anyname 5 { 
строка 1
строка 2
}

Нужна такая регулярка, которая будет выводить данные в такой список:
match[1] = '5'
match[2] = 'Строка 1'
match[3] = 'Строка 2'

Пока остановился вот на таком решении:
reply (\d) { 
(.*)
(.*)
}

Но есть минусы:
1. Шаблон в несколько строк выглядит очень тупо
2. Строк внутри скобок может быть бесконечное множество

Помогите пожалуйста :с
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
@dodo512
a = re.search(r"(?s)(\d+)\s*{\s*(.*?)}", text)
m = [a.group(1)] + a.group(2).splitlines()
print (m)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
/(.+(\d+))/m
Полный матч - строка ("слово цифра", "много слов цифра").
2-я группа в каждом матче - это цифра после слова в каждой строке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы