Ruby中的“=〜”运算符是什么?

时间:2010-06-11 20:02:26

标签: ruby operators

我在截屏视频中看到了这个,但无法弄清楚它是什么。参考表只是将其与其他运算符一起作为一般模式匹配运算符。

7 个答案:

答案 0 :(得分:46)

它将字符串与正则表达式匹配。

'hello' =~ /^h/ # => 0

如果没有匹配,则会返回nil。如果你传递了无效的参数(即左侧或右侧不正确),它将抛出TypeError或返回false

答案 1 :(得分:16)

来自ruby-doc

<强> str =~ obj => fixnum or nil

匹配 - 如果obj是Regexp,则将其用作匹配str的模式,并返回匹配开始的偏移位置,如果没有匹配则返回nil。否则,调用obj。=〜,将str作为参数传递。 Object中的default =〜返回false。

"cat o' 9 tails" =~ /\d/   #=> 7
"cat o' 9 tails" =~ 9      #=> false

答案 2 :(得分:4)

嗯,引用是正确的,它是“匹配此正则表达式”运算符。

if var =~ /myregex/ then something end

答案 3 :(得分:4)

正如其他答案已经陈述的那样,=~是正则表达式vs字符串匹配运算符。

注意:=~运算符不可交换

请从ruby doc site开始考虑以下注释,因为我只看到了第一个表单

str =~ regexp 

用于其他答案:

  

注意:str =~ regexpregexp =~ str不同。捕获的字符串   来自命名的捕获组仅分配给局部变量   第二种情况。

以下是第二种表单的文档:link

答案 4 :(得分:2)

正则表达式字符串匹配。以下是运营商的详细列表:http://phrogz.net/programmingruby/tut_expressions.html#table_7.1

答案 5 :(得分:1)

正则表达式字符串匹配:

如果url =〜/ google.com /

,则

成立

您可以将'=〜'读作'匹配'。

答案 6 :(得分:0)

我相信这是一个与正则表达式一起使用的模式匹配运算符。