兩個表達式:匹配方法和=〜運算符有什麼區別?
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