Підхід до видалення образливих персонажів є потенційно проблематичним. Що робити, якщо .десь у рядку є інший ? Він не буде видалений, хоча і повинен!
Видаляючи нецифрові чи крапки, рядок 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, ви можете зробити ще одну перевірку, щоб переконатися, що відповідний підрядок має не більше одного ..
joe.smith ($3,004.50)? Просто видалення образливих класів персонажів може піти зовсім неправильно.