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 =~ regexp
与regexp =~ str
str =~ regexp
不一样。 从命名捕获组捕获的string仅在第二种情况下才分配给局部variables。
以下是第二种forms的文档: 链接
正则expression式string匹配 以下是运营商的详细列表: http : //phrogz.net/programmingruby/tut_expressions.html#table_7.1
正则expression式string匹配
如果url =〜/ google
你可以阅读'=〜'为'正在匹配'。
我相信这是一个与正则expression式匹配的模式匹配运算符。