两个表达式:匹配方法和=〜运算符有什么区别?
puts "String has vowels" if "This is a test".match(/[aeiou]/)
和
puts "String has vowels" if "This is a test" =~ /[aeiou]/
似乎相同。他们不是?我做了下面的一些测试:
"This is a test" =~ /[aeiou]/
# => 2
"This is a test".match(/[aeiou]/)
# => MatchData "i"
所以好像=~
为您提供了第一场比赛的位置和match
方法为您提供了相匹配的第一个字符。它是否正确?他们都返回true
,那么这里有什么不同?
做什么[的文档(HTTP快一点少于三次:// WWW .ruby-doc.org/core-2.1.3/Regexp.html)说? – 2014-10-03 23:24:53
这个问题没有多大意义。正如您注意到的,当您将它们嵌入到条件中时,差异会消失,但这并不意味着它们本身并不相同。 – sawa 2014-10-04 04:27:09
嗯....等等,当两个表达式都处于条件时没有区别。只有当他们从有条件的否定中被带出时才会产生差异? – Jwan622 2014-10-04 17:49:12