Попробуйте использовать следующий шаблон регулярных выражений:
Balance: (\d{1,3}(?:,\d{3})*)
Это будет соответствовать только сумме баланса, разделенной запятыми, и не получит ничего другого. Пример сценария:
txt = "Balance: 47,124, age, ... Balance: 1,234, age ... Balance: 123, age"
amounts = re.findall(r'Balance: (\d{1,3}(?:,\d{3})*)', txt)
amounts = [a.replace(',', '') for a in amounts]
print(amounts)
['47124', '1234', '123']
Вот как работает шаблон регулярного выражения:
\d{1,3} match an initial 1 to 3 digits
(?:,\d{3})* followed by `(,ddd)` zero or more times
Таким образом, шаблон соответствует от 1 до 999, а затем допускает те же значения, за которыми следуют одна или несколько запятых. группа разлученных тысяч.