ruby - $&、$'、$1 等在 Ruby 代码中是什么意思?

标签 ruby eventmachine

<分区>

我对 $ 变量在这部分 EventMachine 代码中的工作方式感到困惑(strip_op 是一个 String#sub 方法):

def receive_data(data)
      @buf = @buf ? @buf << data : data

      while (@buf && !@closing)
        case @parse_state
        when AWAITING_CONTROL_LINE
          case @buf
          when PUB_OP
            ctrace('PUB OP', strip_op($&)) if NATSD::Server.trace_flag?
            return connect_auth_timeout if @auth_pending
            @buf = $'
            @parse_state = AWAITING_MSG_PAYLOAD
            @msg_sub, @msg_reply, @msg_size = $1, $3, $4.to_i

$&$'$1等是什么意思?

最佳答案

那些保存最后一个正则表达式匹配的部分。 $& : 匹配的子串,$' : 匹配后的子串,$1 : 匹配的第一个捕获的子字符串。

关于ruby - $&、$'、$1 等在 Ruby 代码中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14270914/

相关文章:

ruby-on-rails - 在 Ruby on Rails 应用程序上为 MySQL 配置 Travis CI

ruby-on-rails - Rails : Date. 今天 - 1.day

ruby - FactoryGirl 未在构建中传递参数

ruby - 使用 EventMachine 和 RabbitMQ 的 RPC

ruby-on-rails - Rails 和 Ruby EventMachine 进程之间的通信

ruby - 测试绑定(bind)到 EventMachine::WebSocket 事件的 block 有哪些策略?

ruby - 使用 Mechanize 的异步请求

ruby - 如何在 Ruby 中对数组进行分组和求和?

ruby-on-rails - rake db migrate 的版本是什么

ruby-on-rails - 使用 EventMachine 的 Rails 应用程序是否可以进行长轮询?