Pendekatan menghapus karakter yang menyinggung berpotensi menimbulkan masalah. Bagaimana jika ada .
string lain di suatu tempat? Itu tidak akan dihapus, meskipun seharusnya!
Menghapus non-digit atau titik, string joe.smith ($3,004.50)
akan berubah menjadi tidak dapat diuraikan .3004.50
.
Imho, lebih baik mencocokkan pola tertentu, dan mengekstraknya menggunakan grup. Sesuatu yang sederhana adalah menemukan semua koma, angka, dan titik yang berdekatan dengan regexp:
[\d,\.]+
Contoh uji coba:
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"
Kemudian untuk setiap pertandingan, hapus semua koma dan kirimkan ke parser. Untuk menangani kasus seperti ini 12.323.344
, Anda dapat melakukan pemeriksaan lagi untuk melihat bahwa substring yang cocok memiliki paling banyak satu .
.
joe.smith ($3,004.50)
? Hanya menghapus kelas karakter yang menyinggung bisa menjadi sangat salah.