在ruby中,我讀了一些操作符,但是我找不到=~
。什麼是=~
,或者這是什麼意思?我看到該程序具有ruby operator「=〜」
regexs = (/\d+/)
a = somestring
if a =~ regexs
我認爲這是比較,如果somestring
等於數字,但,有沒有其他的用法,以及什麼是=~
操作的正確定義是什麼?
在ruby中,我讀了一些操作符,但是我找不到=~
。什麼是=~
,或者這是什麼意思?我看到該程序具有ruby operator「=〜」
regexs = (/\d+/)
a = somestring
if a =~ regexs
我認爲這是比較,如果somestring
等於數字,但,有沒有其他的用法,以及什麼是=~
操作的正確定義是什麼?
=~
運算符將正則表達式與字符串進行匹配,如果找到該匹配項,則返回匹配項的偏移量,否則返回nil。
ruby-1.9.2-p136 :003 > /mi/ =~ "hi mike"
=> 3
ruby-1.9.2-p136 :004 > "hi mike" =~ /mi/
=> 3
ruby-1.9.2-p136 :005 > "mike" =~ /ruby/
=> nil
如上所示,您可以將字符串/正則表達式放在操作符的任一側。
=〜是匹配正則表達式的運算符,它將返回匹配開始的索引(如果不匹配,則返回nil)。
查看here的文檔。
此運算符將字符串與正則表達式匹配。
>> s = 'how now brown cow'
>> s =~ /cow/
=> 14
>> s =~ /now/
=> 4
>> s =~ /cat/
=> nil
如果字符串匹配表達式,則運算符返回偏移量,如果不匹配,則返回nil。它比這個稍微複雜一點:see documentation here; it's a method in the String class.
文檔無用。一直在尋找45分鐘,這是我遇到的最好的解釋。謝謝。 – Padawan 2015-09-10 16:23:53
如果你想玩Ruby正則表達式,我可以推薦http://rubular.com/ – 2011-04-25 18:08:26
我們可以把另一個問題標記爲重複的而不是這個嗎? **就問題本身和答案而言,這個人擁有更多的選票**。另外,搜索'ruby =〜operator',**這個問題是我的測試中Google,Yahoo,Bing和DuckDuckGo中第一個相關的命中**,這也解釋了爲什麼這個人有更多的選票。 – ryenus 2014-10-24 05:07:35
同意@ryenus。 – Padawan 2015-09-10 16:16:53