代码之家  ›  专栏  ›  技术社区  ›  CCSab

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

  •  53
  • CCSab  · 技术社区  · 16 年前

    我在一个屏幕上看到了这个,不知道是什么。参考表只是作为一般的模式匹配操作符与其他操作符叠加在一起。

    7 回复  |  直到 10 年前
        1
  •  46
  •   ealdent    16 年前

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

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

    如果没有匹配,它将返回 nil . 如果传递的参数无效(即左侧或右侧不正确),它将 TypeError 或返回 false .

        2
  •  16
  •   stephaniecoleman Ju Nogueira    11 年前

    ruby-doc :

    str =~ obj => fixnum or nil

    匹配“如果obj是regexp,使用它作为与str匹配的模式,并返回匹配开始时的偏移位置,如果没有匹配,则返回nil。否则,调用obj.=~,将str作为参数传递。默认=~ In对象返回假。

    "cat o' 9 tails" =~ /\d/   #=> 7
    "cat o' 9 tails" =~ 9      #=> false
    
        3
  •  4
  •   Tesserex    16 年前

    引用是正确的,它是“matches this regex”操作符。

    if var =~ /myregex/ then something end
    
        4
  •  4
  •   mvw    10 年前

    如其他答案所述, =~ 是正则表达式vs字符串匹配运算符。

    注: = 运算符不可交换

    请考虑以下注释: ruby doc site 我只见过第一种形式

    str =~ regexp 
    

    用于其他答案:

    注: str =~ regexp 与…不同 regexp =~ str . 捕获的字符串 从命名的捕获组仅分配给 第二种情况。

    以下是第二张表格的文件: link

        5
  •  2
  •   Curtis    16 年前

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

        6
  •  1
  •   Erik    16 年前

    正则表达式字符串匹配:

    如果url=~/google.com为真/

    您可以读取“=~”作为“匹配”。

        7
  •  0
  •   Andrew Hubbs    16 年前

    我相信这是一个与regex一起使用的模式匹配操作符。