line = "abcde:abc/abcd=(12, 20)"
,我想12
和20
在數組中。我的解決方案是:
array_line = line[/\(.*?\)/].delete('()').delete(' ').split(",")
有沒有更好的方法來解決它使用紅寶石?
line = "abcde:abc/abcd=(12, 20)"
,我想12
和20
在數組中。我的解決方案是:
array_line = line[/\(.*?\)/].delete('()').delete(' ').split(",")
有沒有更好的方法來解決它使用紅寶石?
此,如果你想串
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"]
在這裏,我們使用前視和後視僅匹配括號之間的數字。
只是出於好奇:
require 'json'
JSON.parse "[#{'abcde:abc/abcd=(12, 20)'[/(?<=\().*?(?=\))/]}]"
#⇒ [12, 20]
這確實是一個原創的解決方案。大多數人不知道'String#[]'是否支持正則表達式。 – tadman
真棒!如果括號內有逗號和數字會怎麼樣?像line =「abcde:123,type/onetwothree =(12,20)」 –
@YiningTeng更新回答 –