请教关于ruby的一个问题

请教关于ruby的一个问题

def unescape(string)
  string.gsub(/((?%|\\x)[0-9a-fA-F]{2})+)/n) do
    s = $1.gsub!(/(%|\\x)/, '')
    [s].pack('H*')
  end
end

请问这个方法是实现什么呢?
请高手给解释一下,谢谢。
去ruby版.