Ruby代码中$&,$',$ 1等是什么意思?

时间:2013-01-11 02:53:39

标签: ruby eventmachine

我很担心$变量在EventMachine代码的这一部分中是如何工作的(strip_opString#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 个答案:

答案 0 :(得分:4)

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