操作者
if /hay/ =~ 'haystack'
puts "There is hay in the word haystack"
end
注意: 訂單很重要。雖然'haystack' =~ /hay/
在大多數情況下是等效的,但副作用可能會有所不同:
- 只有在呼叫
Regexp#=~
時,才會將從命名捕獲組捕獲的字串分配給區域性變數(regexp =~ str
); - 由於右運算元可能是一個任意物件,因此對於
regexp =~ str
,將被稱為Regexp#=~
或String#=~
。
請注意,這不會返回 true / false 值,而是返回匹配的索引(如果找到),如果未找到則返回 nil。因為 ruby 中的所有整數都是真的(包括 0)而 nil 是假的,這是有效的。如果你想要一個布林值,請使用 #===
,如另一個示例所示。