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

我在屏幕截图上看到了这一点,无法弄清楚它是什么。 参考手册只是将其与其他操作员一起作为一般模式匹配操作员。

它将string匹配到正则expression式。

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

如果不匹配,则返回nil 。 如果通过无效参数(即左侧或右侧不正确),它将抛出一个TypeError或返回false

从ruby-doc :

str =~ obj => fixnum or nil

匹配 – 如果obj是一个正则expression式,则将其用作匹配str的模式,并返回匹配开始时的偏移位置,如果不匹配,则返回零。 否则,调用obj。=〜,将str作为parameter passing。 在Object中默认=〜返回false。

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

那么参考是正确的,那就是“匹配这个正则expression式”的操作符。

 if var =~ /myregex/ then something end 

正如其他答案已经表明, =~是正则expression式与string匹配运算符。

注: =~运算符不可交换

请从ruby doc站点考虑下面的注释,因为我只看到了第一个表单

 str =~ regexp 

在其他答案中使用:

注意: str =~ regexpregexp =~ str str =~ regexp不一样。 从命名捕获组捕获的string仅在第二种情况下才分配给局部variables。

以下是第二种forms的文档: 链接

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

正则expression式string匹配

如果url =〜/ google

你可以阅读'=〜'为'正在匹配'。

我相信这是一个与正则expression式匹配的模式匹配运算符。