2017-07-07 43 views

回答

5

此,如果你想串

line.scan(/\d+/) #=> ["12", "20"] 

或數字數組

line.scan(/\d+/).map(&:to_i) #=> [12, 20] 

按照意見的數組另一個例子和方法:

line = "abcde:123, type/onetwothree = (12, 20)" 
line[/(?<=\()[0-9,\s]+(?=\))/].split(', ') #=> ["12", "20"] 

在這裏,我們使用前視和後視僅匹配括號之間的數字。

+0

真棒!如果括號內有逗號和數字會怎麼樣?像line =「abcde:123,type/onetwothree =(12,20)」 –

+0

@YiningTeng更新回答 –

1

只是出於好奇:

require 'json' 
JSON.parse "[#{'abcde:abc/abcd=(12, 20)'[/(?<=\().*?(?=\))/]}]" 
#⇒ [12, 20] 
+0

這確實是一個原創的解決方案。大多數人不知道'String#[]'是否支持正則表達式。 – tadman

0

這一次可能是一個很好的答案,以及:

line[/\((.*?)\)/, 1].delete(' ').split(",") 
+1

也爲整數值添加'.map(&:to_i)'。 – tadman