Dar*_*use 5 ruby string methods ruby-on-rails gsub
我试图替换一个表达式,除非该表达式是两个值之一。
def substitute_string (string)
string.gsub('abc', 'xyz') unless string == ('dabc' || 'eabc')
end
substitute_string('jjjjjabc')
=> 'jjjjjxyz'
substitute_string('dabc')
=> 'dabc'
substitute_string('eabc')
=> 'exyz'
Run Code Online (Sandbox Code Playgroud)
我希望replace_string('eabc')返回('eabc'),因为我在除非块中声明了该值,并传递了两个值。
我不明白为什么这行不通,并且我可以做些什么来使'eabc'返回'eabc'。
('dabc' || 'eabc')是一个布尔表达式,其计算结果为true并返回“dabc”。
使用两个或:
unless string == 'dabc' || string == 'eabc'
或者使用=~(正则表达式模式匹配)
unless string =~ /(dabc|eabc)/
既然您表明您正在使用 Rails,您也可以in?像这样使用:
unless string.in? ['dabc', 'eabc']