У меня есть следующая строка:
text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj'
Я хочу вернуться:
2007 2008
Как это сделать в Python?
>>> import re
>>> text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj'
>>> re.sub("[^0-9]"," ",text)
' 2007 2008 '
Я оставлю его вам для форматирования вывода.
Это классический случай для регулярных выражений. Используя библиотеку re python, вы получите:
re.findall('\d{4}', "yourStringHere")
Это вернет список всех четырехзначных элементов, найденных в строке. Просто отрегулируйте свое регулярное выражение по мере необходимости.
import re
num = re.compile('[\d]*')
numbers = [number for number in num.findall(text) if number]
['2007', '2008']
text.translate(None, ''.join(chr(n) for n in range(0xFF) if chr(n) not in ' 01234567890')
Возможно, вы можете создать лучшую таблицу символов, чтобы пропустить и сделать ее красивее, но что общая идея.