在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