Ruby String Match

时间:2014-01-21 23:20:31

标签: ruby string match

你如何反向

asd = 'qwe'

asd.match('qwe') do
  p 'it matches'
else
  p 'it doesnt match'
end

反过来,我的意思是

asd.does_not_match('qwe') do
  p 'it doesnt match'
else
 p 'it matches'
end

'不匹配'的语法是什么?

3 个答案:

答案 0 :(得分:7)

要获得if的相反效果,您可以像这样使用unless

unless asd.match('qwe')
  puts 'it doesnt match'
else
  puts 'it matches'
end

或者您可以使用if,但在表达式的开头使用“bang”(感叹号),您希望“反转”该表达式的布尔值。

if !asd.match('qwe')
  puts 'it doesnt match'
else
  puts 'it matches'
end

在ruby中阅读conditional statements以了解更多内容。

答案 1 :(得分:3)

result = asd.match('qwe') ? "it matches" :  "it doesn't match"

puts result

匹配

result = !asd.match('qwe') ? "it matches" :  "it doesn't match"

puts result

它不匹配

三元运算符会使您的代码变得简单,也可以尝试...

答案 2 :(得分:1)

使用运营商'!'颠倒声明的逻辑。 只需将第一行更改为

即可
!(asd.does_not_match('qwe')) do

*我喜欢在整个陈述中加上括号,因为看到你在否定的东西更清楚