Регулярные выражения: найти числа в скобках

Рейтинг: 1Ответов: 1Опубликовано: 12.02.2023
a = 'Nightmare City (lite) 2001 film (2000, 2005-2007) DVD'

search = re.findall(r'([\d+]{4})', a)
p = ','.join(search)

print(p)
==>
2001,2000,2005,2007

Как из названия фильма получить вывод дат в скобках 2000, 2008-2007 при любом варианте написания, вместе с "-"?
например
(2000)
(2005, 2008-2007)
(2008 - 2007)
(2005, 2006, 2007, 2008, 2009)

Ответы

▲ 1

Можно задачу разбить на две подзадачи: сначала найти нужную подстроку в скобках, а затем уже вытащить из неё нужные числа.

import re

a = 'Nightmare City (lite) 2001 film (2000, 2005-2007) DVD'

search = re.findall(r'(?<=\()\d{4}.*(?=\))', a)
result = re.findall(r'\d{4}', search[0])

p = ', '.join(result)
print(p)

------------------------------

2000, 2005, 2007