2015-10-19 68 views
0

我需要刪除字符串中所有括號之間的所有內容以及逗號之前的尾部空格,如何在rails上的ruby中執行此操作?當字符串總是相同的時候,我發現如何做到這一點,但是由於括號內的值並不總是相同的,所以我找到的所有方法都失敗了。如何從括號中刪除括號和尾隨空格之間的所有內容?

括號內的值可以是13數字,所以可能的解決方案必須考慮不同的值長度。

樣品字符串:

2(2) , 12(3) , 20(2) , 21(5) 

成果,我想:

2, 12, 20, 21 

我嘗試使用這個正則表達式:

/(...) 

捕獲的前3場比賽,但不是最後一次一個是因爲它沒有尾隨空間。

僅使用(...)由於某種原因導致與2(2) , 12(3) , 20(2) , 21(5匹配。

如何爲此創建合適的正則表達式或可能是更好的解決方案?

回答

1

試試這個:

x = "2(2) , 12(3) , 20(2) , 21(5)" 
x.gsub(/\(.*?\)/, '') 

enter image description here

+0

第一個只刪除第一匹配,但缺少'g',但添加時無法使用它。第二個刪除除字符串中第一個數字之外的所有內容。 – Chrillewoodz

+0

它也沒有考慮尾隨空間 – Chrillewoodz

+0

@Chrillewoodz嘗試新版本。它適用於我 –

1
s = "2(2) , 12(3) , 20(2) , 21(5)" 
s.gsub(/\(.*?\) ?/, '') 
=> "2, 12, 20, 21" 

這應該是工作。

0

Thisone也爲我工作(s代表輸入字符串):

ar = s.split(',').each.map { |el| el.strip.match(/(\d*)[^\(]/) } 
result = ar.each.map {|el| el[0]} 

這是一個有點龐大,不是很漂亮,但做這項工作:)

相關問題