в случае, если числа не разделены пробелами, вы можете проверить каждый символ отдельно. groupby
из пакета itertools
делает это относительно легко:
from itertools import groupby
s = "I am 25 years old and my pincode is 110092"
[int(''.join(gen)) for isdigits, gen in groupby(s, str.isdigit) if isdigits]
делает правильные вещи, а также делает правильные вещи, если ваша строка:
s = "a23b"
, который не сработает для ответов на основе split
.
немного расширив это, мы можем определить функцию:
def get_grouped_digits(s):
result = []
for isgroupdigits, gen in groupby(s, str.isdigit):
if isgroupdigits:
result.append(int(''.join(gen)))
return result