2015-08-30 7 views

ответ

4

Если это только одна строка, я бы подойти к этому с помощью раскола:

>>> 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']] 
+0

есть ли причина «split»? –

+2

@blue_zinc избегать регулярных выражений, подверженных ошибкам, и использование строковых методов ('str.split' и т. Д.) Часто быстрее и понятнее. – knight

2

Вы хотите использовать re.findall() с захвата группы:

results = [re.findall(r'track-(\d+)-(\d+)', datum) for datum in data] 
Смежные вопросы