布尔检查字符串是否与ruby中的正则表达式匹配?

kdd*_*isz 3 ruby regex

在ruby中,我看到很多代码都在执行以下操作:

def test(s)
  s =~ /Macintosh/
end
Run Code Online (Sandbox Code Playgroud)

测试字符串是否与正则表达式匹配.但是,这会返回fixnum或nil,具体取决于它是否找到匹配项.有没有办法做同样的操作,但让它返回一个布尔值,看它是否匹配?

我认为这两个可能的解决方案是!(s =~ /Macintosh/).nil?!(s !~ /Macintosh/),但那些都显得非常可读的.是否有类似的东西:

def test(s)
  s.matches?(/Macintosh/)
end
Run Code Online (Sandbox Code Playgroud)

Cas*_*yte 10

你可以用这个:

def test(s)
    /Macintosh/ === s
end
Run Code Online (Sandbox Code Playgroud)