Выделить числа из строки в список

Как мне отсеять 2 числа в массив из строчки?

print('Tny6anxayna = 104 nognucunkos §—-29 noanucok')

Output:

[104,29]

Ответы (3 шт):

Автор решения: Zhihar

ну как вариант если строка нестандартная - заменить все символы на пробелы, потом сделать split() и выделить числа, правда в этом случае и для 5a7 получится 2 числа

например так:

text = 'Tny6anxayna = 104 nognucunkos §—-29 noanucok'

text_digits = ''.join(letter for letter in text if letter in ' \t0123456789')

print(text_digits.split())

правда тут лишняя 6 из Tny6anxayna вылезает :(

→ Ссылка
Автор решения: Kers

Попробуйте регулярками:

import re
t = 'Tny6anxayna = 104 nognucunkos §—-29 noanucok'

p = re.compile("(\d*) ")
m = p.findall(t)
# m = ['', '', '104', '', '29']

ls = []
for i in m:
    if i != "":
        ls.append(i)
print(ls)

Возможно получится составить регулярку лучше чтобы не цепляла пробелы тогда можно будет убрать лишнюю конструкцию if но побыстрому получился такой вариант.

→ Ссылка
Автор решения: CrazyElf

Не совсем понял принцип, но видимо так:

import re
text = 'Tny6anxayna = 104 nognucunkos §—-29 noanucok'

re_digits = re.compile(r"\b\d+\b")
print(re_digits.findall(text))

Вывод:

['104', '29']
→ Ссылка