Podejście do usuwania obraźliwych postaci jest potencjalnie problematyczne. A co, jeśli gdzieś .
w ciągu jest inny ? Nie zostanie usunięty, ale powinien!
Usuwając joe.smith ($3,004.50)
niecyfrowe lub kropki, ciąg przekształciłby się w nierozdzielny .3004.50
.
Imho, lepiej jest dopasować określony wzorzec i wyodrębnić go za pomocą grupy. Prostym rozwiązaniem byłoby znalezienie wszystkich ciągłych przecinków, cyfr i kropek za pomocą wyrażenia regularnego:
[\d,\.]+
Przykładowy przebieg testowy:
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"
Następnie dla każdego dopasowania usuń wszystkie przecinki i wyślij to do parsera. Aby obsłużyć wielkość liter 12.323.344
, możesz ponownie sprawdzić, czy pasujący podciąg ma co najwyżej jeden .
.
joe.smith ($3,004.50)
? Zwykłe usuwanie obraźliwych klas postaci może się nie udać.