2016-07-12 3 views
0

я должен разбить строку с помощью регулярных выражений: говорят Nikolaus Kopernikus -> 1473-1543REGEX, чтобы начать строку с определенной точки

Я попытался следующие, но это только дает мне список без ->

Что мне нужно годы 1473-1543, предпочтительно в списке ['1473','1543']

import re 

print (re.split(r'->', 'Nikolaus Kopernikus -> 1473-1543')) 

Я хочу, чтобы регулярное выражение, которое делает начало строки из определенного знака, большое спасибо заранее!

ответ

2

Если вы хотите использовать регулярное выражение:

import re 
re.match('.*->[^\d]*(\d+)-(\d+)','Nikolaus Kopernikus -> 1473-1543').groups() 
#output: ('1473', '1543') 

Если вам нужен список вместо кортежа использовать функцию list.

2

Использование str.split:

'Nikolaus Kopernikus -> 1473-1543'.split('->')[1].strip().split('-') # ['1473', '1543'] 

Из документов:

Возвращает список слов в строке, используя разделитель в качестве разделителя строки. Если задано maxsplit, выполняется максимум maxsplit (таким образом, список будет иметь максимум maxsplit + 1 элемент). Если maxsplit не задано или -1, то нет ограничений на количество разделов (все возможные расщепления сделаны).

Примечание: Я использовал str.strip удалить пробелы после расщепления.

+0

hmmm, спасибо, но это не сделано с использованием регулярных выражений – gbZDB

+1

И это хорошо. –

Смежные вопросы