Итак, у меня есть несколько строк, которые содержат последовательность чисел и тире:
strings = [
'32sdjhsdjhsdjb20-11-3kjddjsdsdj435',
'jdhjhdahj200-19-39-2-12-2jksjfkfjkdf3345',
'1232sdsjsdkjsop99-7-21sdjsdjsdj',
]
У меня есть функция:
def get_nums():
for string in strings:
print(re.findall('\d+-\d+', string))
Я хочу, чтобы эта функция возвращала следующее :
['20-11-3']
['200-19-39-2-12-2']
['99-7-21']
Но моя функция возвращает:
['20-11']
['200-19', '39-2', '12-2']
['99-7']
Я не знаю, как вернуть полную последовательность чисел и тире.
Последовательности всегда начинаются и заканчиваться цифрами, никогда не тире. Если между числами нет тире, их не следует возвращать.
Как я могу использовать регулярные выражения для возврата этих последовательностей? Есть ли альтернатива регулярному выражению, которая была бы лучше здесь?