Вы можете использовать регулярное выражение, подобное следующему:
/\d+(\.\d+)?/
Будьте осторожны, потому что это не будет читать единицы, поэтому вы можете легко получить ошибку, если есть что-то вроде следующего:
Was £2 Now Only 99p
Возможно, вы также захотите следить за запятыми в вашей текстовой строке. Обратите внимание, что здесь также есть проблемы интернационализации, о которых вы должны знать. Многие страны используют ,
в качестве десятичного разделителя и .
в качестве разделителя тысяч. Возможно, вы сможете угадать локаль из валюты (например, £ предполагает, что десятичный разделитель равен .
).
Если вы сможете более точно определить, какие значения должна принимать ваша программа, вы, вероятно, получите лучшие ответы.