如何干掉这个Ruby代码

时间:2013-03-26 22:18:48

标签: ruby refactoring dry

如何删除以下Ruby代码:

    x = 'a random string to be formated'
    x = x.split('^')[0] if x.include?('^')
    x = x.split('$')[0] if x.include?('$')
    x = x.split('*')[0] if x.include?('*')

我正在寻找令人惊讶的优雅红宝石衬里,但我很难找到它。 它应该有点可读。

由于

4 个答案:

答案 0 :(得分:2)

我认为这可能是你正在寻找的东西

x.split(/\^|\$|\*/)

答案 1 :(得分:0)

这对我有用:

x = "a random string to be formatted"
['^', '$', '*'].each { |token|
  x = x.split(token)[0] if x.include?(token)
}

答案 2 :(得分:0)

根据您提供的代码

x = 'a random string to be formated'

%w(^ $ *).each do |symbol|
  x = x.split(symbol)[0] if x.include?(symbol)
end

答案 3 :(得分:0)

你正在寻找这个正则表达式:

string.match(/^([^^$*]+)[$^*]?/).captures[0]

它会在$, ^, or *的第一次或字符串结尾处返回所有字符。