怎么能写这个gsub正则表达式匹配?

时间:2012-06-25 13:45:08

标签: ruby regex

  

可能重复:
  Perfect way to write a gsub for a regex match?

我正在尝试为正则表达式匹配编写一个gsub,但我想有一种更完美的方法可以做到这一点。

我的等式:

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

这样我就可以使用settings/animals,只返回settings

但是如果settings为空怎么办?比我的[1]失败了。

那么如果假设有时settings不匹配,那么如何编写上述语句?

1 个答案:

答案 0 :(得分:0)

使用/(settings|)(.*)/,然后第一组将返回“settings”或空字符串(如果不存在)。

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