Подход к удалению оскорбительных символов потенциально проблематичен.Что если в строке есть еще .
?Он не будет удален, хотя и должен!
При удалении нецифров или точек строка joe.smith ($3,004.50)
преобразуется в непонятную .3004.50
.
Имхо, лучшесопоставить конкретный шаблон и извлечь его, используя группу.Что-то простое - найти все смежные запятые, цифры и точки с помощью регулярного выражения:
[\d,\.]+
Пример теста:
Pattern understood as:
[\d,\.]+
Enter string to check if matches pattern
> a2.3 fjdfadfj34 34j3424 2,300 adsfa
Group 0 match: "2.3"
Group 0 match: "34"
Group 0 match: "34"
Group 0 match: "3424"
Group 0 match: "2,300"
Затем для каждого совпадения удалите все запятые и отправьтепарсеру.Чтобы обработать регистр чего-то вроде 12.323.344
, вы можете сделать еще одну проверку, чтобы увидеть, что соответствующая подстрока имеет не более одной .
.