ruby运算符"=〜"

kam*_*der 108 ruby operators

在红宝石中,我读了一些操作符,但我找不到=~.什么是=~对,还是这是什么意思?我看到的程序有

regexs = (/\d+/)
a = somestring
if a =~ regexs
Run Code Online (Sandbox Code Playgroud)

我认为它是比较somestring等于数字但是,是否还有其他用法,=~运算符的正确定义是什么?

Mik*_*wis 155

=~运营商对匹配字符串的正则表达式,它返回无论是从如果找到字符串匹配的偏移量,否则为零.

/mi/ =~ "hi mike" # => 3 
"hi mike" =~ /mi/ # => 3 

"mike" =~ /ruby/ # => nil 
Run Code Online (Sandbox Code Playgroud)

您可以将字符串/正则表达式放在操作符的任意一侧,如上所示.


Dig*_*oss 36

此运算符将字符串与正则表达式匹配

s = 'how now brown cow'

s =~ /cow/ # => 14
s =~ /now/ # => 4
s =~ /cat/ # => nil
Run Code Online (Sandbox Code Playgroud)

如果String与表达式匹配,则运算符返回偏移量,如果不匹配,则返回nil.它稍微复杂一点:请参阅此处的文档; 它是String类中的一个方法.

  • 文档是没有用的。搜索了45分钟,这是我遇到的最好的解释。谢谢。 (2认同)

Tim*_*tan 16

=〜是匹配正则表达式的运算符,它将返回匹配开始的索引(如果没有匹配则返回nil).

请参阅此处获取文档.