2012-06-25 71 views
-4

可能重複:
Perfect way to write a gsub for a regex match?如何才能寫出這個gsub正則表達式匹配?

我試圖寫一個正則表達式匹配一個GSUB,但我想有這樣做更完美的方式。

我的公式:

ref.gsub(ref.match(/settings(.*)/)[1], '') 

所以,我可以藉此settings/animals,並返回剛剛settings

但是如果settings爲空?不如預期的那樣,我的[1]失敗。

那麼如何寫一個上面的語句,假設有時settings不會匹配?

回答

0

使用/(settings|)(.*)/,那麼第一組將返回「設置」或空字符串,如果它不存在。

puts 'settings/123'.match(/(settings|)(.*)/)[1]; 
puts 'Xettings/123'.match(/(settings|)(.*)/)[1]; 
+0

這似乎是你現在想要的。 :) – Ashe