2016-03-23 23 views
-7

Ich habe "8 560,90 cur.". Wie bekomme ich die ganze Nummer 8560 als Integer?Regex für Preis mit   und Komma

Ich kann es durch Komma teilen, und dann [0] als ganze Zahl bekommen, gefragt, ob es mehr Möglichkeiten gibt, es zu tun.

+1

Schreiben von Code wäre ein guter Anfang ... –

+0

wird es immer non-breaking Raum buchstäblich als '& nbsp' geschrieben werden? –

+0

meine Fragen sind für Regex –

Antwort

1

Hier ist, wie ich es tun würde:

str = "8 560,90 cur." 
str.gsub(/[^\d,]/, '').to_i 
# => 8560 

Dies beseitigt jedes Zeichen, das keine Ziffer oder ein Komma ist, wodurch man "8560,90", ruft dann to_i drauf, die 8560 gibt. Dies funktioniert so lange, wie Sie wollen, dass jede Ziffer vor dem ersten Komma Teil der Nummer ist und keine danach.

+0

Netter Trick! mit der Konvertierung von float nach int! Vielen Dank. –

1
"8 560,90 cur.".scan(/(\d*?).+?(\d+,\d\d)/).flatten.join.to_i 
# => 8560 
"sdwfdsf560,90 cur.".scan(/(\d*?).+?(\d+,\d\d)/).flatten.join.to_i 
# => 560 
+0

Ja, das funktioniert! Aber ich dachte, es gibt einen einfacheren Weg, es zu tun. Danke trotzdem –

+0

was ist, wenn es "961,03" hat, ohne nbsp dividiert? –

Verwandte Themen