В зависимости от того, какие входные данные у вас могут быть, вы можете уменьшить границы с помощью некоторого выражения, похожего на:
\.?\d*(?:\.\d*)?\sbased on.+?feedback\b
в зависимости от того, что вы определите действительное число.
Тест
import re
expression = r"\.?\d*(?:\.\d*)?\sbased on.+?feedback\b"
string = """
some words there 2.2 based on 1,135,421 player feedback some words here
6.0 based on 5,135,421 player feedback some words
here 9.9 based on 421 player feedback some words here
2.2 based on 135,421 player feedback some words here
some words there 2 based on 1,135,421 player
feedback some words here 6. based on 5,135,421 player
feedback some words here 9.9 based on 421 player feedback some
words here .1 based on 135,421 player feedback some words here
"""
print(re.findall(expression, string))
Вывод
['2.2 based on 1,135,421 player feedback', '6.0 based on 5,135,421 player feedback', '9.9 based on 421 player feedback', '2.2 based on 135,421 player feedback', '9.9 based on 421 player feedback', '.1 based on 135,421 player feedback']
Если вы хотите упростить / изменить / изучить выражение, это объяснено в верхней правой панели regex101.com .Если хотите, вы также можете посмотреть в эту ссылку , как она будет сопоставляться с некоторыми примерами ввода.