Я пытаюсь написать функцию, которая извлекает числа из полиномиального выражения .
Функция определяется следующим образом:
def getNumbers(polynomial):
regex = re.compile(r"[+-]?(?<!\.)\b[0-9]+\b(?!\.[0-9])")
numbers = []
i = 0
for match in regex.finditer(polynomial):
numbers.append(match.group(i))
i+=1
return numbers
Я проверил функцию со следующим:
In [139]: getNumbers('2x^3+4x^2+8x-16')
Out[139]: ['3', '2', '-16']
В этом случае функция должна вывести ['2', '3', '4', '2', '8', '-16'] * 1012 *.
Почему выражение regex не находит другие числа в качестве соответствия выражению?
Как правильно вернуть числа в строке, содержащей полиномиальное выражение?