2010-12-11 34 views
4

也許我只是非常疲憊,但我沒有看到一個明顯的方法,從這樣的字符串解析出號碼:分析來自ruby字符串的重複匹配?

發生在我
some text here, and then 725.010, 725.045, 725.340 and 725.370; and more text 

一件事:拆分此用空格成陣列。然後將一個組的正則表達式測試應用於數組中的每個元素。

是否有更乾淨,更簡單的方法來做到這一點?

+0

感謝您的回答,每個人。我忘記了String#掃描。順便說一句,這些是法定數字。 – Dogweather 2010-12-11 16:03:04

回答

5

您需要String#scan:比賽

your_string.scan(/\d\d\d\.\d\d\d/) 

將輸出數組。

5
result = subject.scan(/\d+(?:\.\d+)?/) 

這會找到一個字符串整數或小數,並把它們(仍然爲字符串,雖然)進入陣列result

+1

要使它們成爲浮點數,只需執行'result = subject.scan(/ \ d +(?:\。\ d +)?/)。map(&:to_f)'。 – 2010-12-11 13:51:02