У меня есть функция python, которая использует регулярное выражение для сопоставления с одним (первым) числом с плавающей запятой в данной строке и возвращает число.
Как я могу изменить его (регулярное выражение) для обобщенияфункция, чтобы она вместо этого возвращала список со всеми числами в строке?
Вот рабочая демонстрация:
import re
def extract_number(s,notfound='NOT_FOUND'):
regex='[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?' # matching any floating point number
m = re.search(regex,s)
if(m): val=m.group()
else: val=notfound
return val
example='bla1.23bar4.5fuzz6.7cat8'
print example
print extract_number(example)
В этом примере вывод:
bla1.23bar4.5fuzz6.7cat8
1.23
Модифицированная функция, которую я ищу, назовем ее extract_numbers (обратите внимание на множественное число!), Должна вывести это:
bla1.23bar4.5fuzz6.7cat8
[1.23, 4.5, 6.7, 8]