У меня есть строка, которая всегда имеет формат track-a-b
где a
и b
- целые числа.
Например:
track-12-29
track-1-210
track-56-1
Python Regex захватывает несколько разделов внутри строки
Как извлечь a
и b
из таких строк в Python?
У меня есть строка, которая всегда имеет формат track-a-b
где a
и b
- целые числа.
Например:
track-12-29
track-1-210
track-56-1
Python Regex захватывает несколько разделов внутри строки
Как извлечь a
и b
из таких строк в Python?
Если это только одна строка, я бы подойти к этому с помощью раскола:
>>> s = 'track-12-29'
>>> s.split('-')[1:]
['12', '29']
Если это многострочный string, я бы использовал тот же подход ...
>>> s = 'track-12-29\ntrack-1-210\ntrack-56-1'
>>> results = [x.split('-')[1:] for x in s.splitlines()]
[['12', '29'], ['1', '210'], ['56', '1']]
есть ли причина «split»? –
@blue_zinc избегать регулярных выражений, подверженных ошибкам, и использование строковых методов ('str.split' и т. Д.) Часто быстрее и понятнее. – knight
Вы хотите использовать re.findall()
с захвата группы:
results = [re.findall(r'track-(\d+)-(\d+)', datum) for datum in data]
Есть ли у вас код? Что вы пробовали? –