2010-01-05 31 views
0

我在想,必須要有一種更簡潔的方法來檢查正則表達式是否不爲零/爲真。這是我一直在使用的: hold =(h4.text =〜/ Blah /) if!hold.nil? ... 結束重構ruby中的正則表達式檢查

我試過了:!(h4.text =〜/Blah/).nil?但它似乎沒有工作。

回答

0
#!/usr/bin/ruby1.8 

text = 'Blah blah blah' 
puts "blah" if text =~ /Blah/ # => blah 

text = 'Foo bar baz' 
puts "blah" if text =~ /Blah/ # (nothing printed) 
  • 在一個Ruby條件語句, 任何既非零也非 錯誤的東西被認爲是真的。

  • =〜如果 是匹配項,則返回nil表示不匹配或整數字符位置。

  • 零是一樣好的假;一個整數是 一樣好。

因此,你可以在如果直接使用的=結果〜,而等

2

您可以使用unless這裏:

unless h4.text =~ /Blah/ 
    #... 
end 
2
if h4.text !~ /Blah/ 
    # ... 
end 
0

無論上述似乎工作,這是我結束了:

unless (h4.text =~ /Blah/) == nil 
    ... 
end 
+0

爲什麼你不能只是做'如果h4.text =〜/胡說/',如果這是你在找什麼? – kejadlen 2010-01-05 21:49:57